繁体   English   中英

在Firestore中无法获取正确的文档ID

[英]Can't get the correct document id in Firestore

在我的TimeForm活动中,我向Firestore添加了一些数据,但是没有将它们添加到特定的文档中,因为我需要使用.addSnapshotListener读取它们,但是我需要删除一些文档。 例如,这是我在星期一集合中的文档:

在此处输入图片说明

但是,当我尝试删除它们时,执行以下操作:

db.collection("monday").document()
    .delete()
    .addOnSuccessListener(new OnSuccessListener<Void>() {
        @Override
        public void onSuccess(Void aVoid) {
            Log.d(TAG, "DocumentSnapshot successfully deleted!");
        }
    })
    .addOnFailureListener(new OnFailureListener() {
        @Override
        public void onFailure(@NonNull Exception e) {
            Log.w(TAG, "Error deleting document", e);
        }
    });

这没有用,因为我没有设置文档名称。 然后我问如何获取文档ID(此处是页面: 从firestore删除数据 ),它没有发送正确的文档ID。 我添加了一个测试按钮,当我单击它时,它显示了带有文档ID的祝酒词,但是每次按此按钮时,它都会显示随机ID,但都不正确。 如何一次一次删除所有这些文件。

它显示了随机ID,但没有一个是正确的。

发生这种情况是因为您没有将任何内容传递给document()方法。 根据CollectionReference的document()方法的官方文档:

返回一个DocumentReference,它指向此集合中具有自动生成的ID的新文档。

因此,每次调用document()方法而不传递任何参数时,您都会获得一个新的 auto-generated ID ,该auto-generated ID永远不会与您现有的auto-generated ID匹配。

为了删除特定文档,您需要将要删除的文档的特定ID传递给document()方法。 它可能看起来像这样:

db.collection("monday").document("2wZg ... GmfS").delete().addOnSuccessListener(/* ... */);

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM