【问题标题】:How to catch empty QuerySnapShot with Firestore python API?如何使用 Firestore python API 捕获空的 QuerySnapShot?
【发布时间】:2020-06-26 12:59:15
【问题描述】:

上下文

我想以这种方式从 Firestore 获取一些数据:

query = db.collection("users").where("age", ">", 20)

for document in query.stream():
    print("User id: {}".format(document.id))

但是,我无法断言它是否会遍历文档。事实上,如果没有符合我的where 条件的文档,则不会发生任何事情。我想提出一个例外。

问题

我们如何使用 python API 捕获任何空的QuerySnapshot

资源:Firebase documentation

【问题讨论】:

  • 我也有同样的问题。你解决了吗?
  • 我最终测试了应该在 for 循环中发生的操作的结果。谢谢你的回答!

标签: python firebase google-cloud-platform google-cloud-firestore


【解决方案1】:

我是这样解决的:

documents = [d for d in db.collection("users").where("age", ">", 20).stream()]

if len(documents):
    for document in documents:
        print("User id: {}".format(document.id))
else:
    print('empty query') 

【讨论】:

    【解决方案2】:
    db.collection("users").where("age", ">", 20)
    

    如果没有与您的位置匹配的文档,则返回 null,请检查

    如果查询!= null : 对于 querenter code herey.stream() 中的文档: print("用户ID:{}".format(document.id))

    【讨论】:

    • 感谢您的回答。但是,我认为这无关紧要。我正在使用 python 库,而不是 js 库。因此,返回值是generator,而不是您建议的null。而且,null在python中是不存在的。
    猜你喜欢
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-04
    • 1970-01-01
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多