java - 从子集合 Firestore/Android 中删除 map

标签 java android firebase

我正在做一个带有 Firestore 数据库的 Android 项目。 我在尝试删除子集合映射时遇到问题,有人可以帮忙吗?

子集合的图像

Image of the subcollection

我想删除整个红色 block 。这是我的方法:

        FirebaseFirestore db = FirebaseFirestore.getInstance();
        db.collection("roteiros").document(collectionId)
                .collection("eventos").document(subcollectionId)
                .delete()
                .addOnSuccessListener(successListener)
                .addOnCompleteListener(completeListener)
                .addOnFailureListener(failureListener);

此方法成功返回,但实际上并未删除文档。

我已经在数据库规则中允许了所有权限,并使用文档路径在模拟器上进行了测试。

最佳答案

您可以使用FieldValue.delete()

FirebaseFirestore db = FirebaseFirestore.getInstance();
db.collection("roteiros").document(collectionId)
    .collection("eventos").document(subcollectionId)
    .update("eventos", FieldValue.delete());

注意:您无法删除数组中的特定索引。您只能删除整个数组并用另一组数据重新创建它。

关于java - 从子集合 Firestore/Android 中删除 map ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58368986/

相关文章:

java - AndroidManifest.xml 中的元数据标签没有正确的值

未安装 Google Play 服务的 Android Mobile Vision API 和 ML Kit

android - 如何在 android 屏幕 xamarin 表单上的任何地方隐藏左侧菜单?

javascript - 如何找到父键未知的子键的值?

Angularfire2 显示 "Missing permissions"错误,而直接运行 firebase 没有问题

java - Gson排除策略和自定义序列化

java - 线程间通信

java - 希尔伯特按分治算法排序?

Java Equals 和 Pass by value 混淆

firebase - 如何在flutter中实现onAuthStateChanged()?