如何知道Firestore Python中是否存在文档?

时间:2018-07-23 16:16:48

标签: python-3.x google-cloud-firestore

使用google.cloud中的firestore库, 有什么方法可以在没有检索所有数据的情况下检查文档是否存在? 我尝试过

fs.document("path/to/document").get().exists()

,但返回404错误。 (google.api_core.exceptions.NotFound)

然后我尝试

fs.document("path/to/document").exists()

但是“存在”不是DocumentReference的功能。

从源头上我可以看到exist()是DocumentSnapshot类中的一个函数,而get()函数应该返回一个documentSnapshot。我不太确定我还能如何获得DocumentSnapshot

谢谢

4 个答案:

答案 0 :(得分:1)

如果您使用的是firebase-admin

fs.collection('items').document('item-id').get().exists

True(如果items/item-id存在。

或者

'item-id' in (d.id for d in fs.collection('items').get())

答案 1 :(得分:0)

您必须检索文档才能知道它是否存在。如果该文档存在,它将被视为已读。

答案 2 :(得分:0)

尝试一下:

docRef      = db.collection('collectionName').document('documentID')
docSnapshot = docRef.get([]); # Empty array for fields to get
isExists    = docSnapshot.exists

使用这种方法,您将检索一个空文档。您将承担“阅读”的费用,但将减少网络出口,并且进程的使用中内存变化几乎为零。

答案 3 :(得分:0)

一种更简单且内存效率更高的方法:

doc_ref = db.collection('my_collection').document('my_document')
doc = doc_ref.get()
if doc.exists:
    logging.info("Found")
else:
    logging.info("Not found")

Source