如何通过获取自动生成的ID来删除Firestore中的文档?

时间:2020-09-19 19:22:13

标签: java android firebase google-cloud-firestore

如何在Firestore中删除文档或子文档以及如何获取其自动生成的ID,以便在用户长按时在列表中的行项目上选择“删除”,以便他/她可以删除可以轻松地从应用程序的用户界面中获取文档。

2 个答案:

答案 0 :(得分:2)

您无法“提取”现有的随机文档。为了删除文档,您需要执行以下两项操作之一:

  • 记住客户端上生成的ID,并使用该ID生成DocumetnReference来删除文档
  • 使用该文档中已知的字段来查询文档,然后在查询后将其删除。或者只是查询所有文档,然后将它们作为一个组进行处理。

如果您无法使用文档的字段查询文档,并且您不知道文档的ID,则说明您很困惑,您将需要更加仔细地考虑数据模型。

答案 1 :(得分:1)

如何在Firestore中删除文档或子文档

要删除文档,您必须使用delete()方法

科林代码

db.collection("your_collection_name").document("documentId")
        .delete()
        .addOnSuccessListener { Log.d(TAG, "DocumentSnapshot successfully deleted!") }
        .addOnFailureListener { e -> Log.w(TAG, "Error deleting document", e) }

您需要知道要删除的collection namedocumentId。使用您的collection namedocumentId从集合中删除文档。

检查this了解更多

如何获取其自动生成的ID

要阅读集合中的所有文档,您还需要知道collection name

要阅读Kotlin中的集合中的文档,请执行以下操作:

db.collection("your_collection_name")
        .get()
        .addOnSuccessListener { result ->
            for (document in result) {
                Log.d(TAG, "${document.id} => ${document.data}")
            }
        }
        .addOnFailureListener { exception ->
            Log.d(TAG, "Error getting documents: ", exception)
        }

document.id将给您每一个documentId。使用此documentId删除文档。

要从集合中读取所有文档,请检查this