使用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
谢谢
答案 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")