首页 > 解决方案 > Firestore - 如何在忽略已经存在的条目的情况下监听实时更改?

问题描述

当我尝试使用 firebase 文档中给出的以下代码时

doc_ref = db.collection(u'users')

def on_snapshot(doc_snapshot, changes, read_time):
    for change in changes:
        print(u'new doc:{}'.format(change.document.id))

doc_watch = doc_ref.on_snapshot(on_snapshot)

即使在我调用侦听器之前它们已经存在,它也会打印所有条目。我只想收听调用侦听器后发生的更改,并忽略在调用侦听器之前已经退出的任何条目。

示例:如果我的用户集合中有 3 个文档:user1、user2 和 user3。我运行我的程序并添加另一个文档 - user4。我的程序打印 user4 而不是 user1、user2 或 user3。

标签: python-3.xfirebasegoogle-cloud-firestore

解决方案


SDK 不提供查询“所有不存在的内容”的方法。您应该提出自己的查询来满足您的需求。在您的情况下,也许您需要每个文档中的时间戳来指示文档的创建时间,并仅查询创建日期大于当前时间的文档。


推荐阅读