【发布时间】:2020-01-20 17:25:53
【问题描述】:
每当 Firestore 中特定集合的任何文档发生更改(创建、修改、删除)时,我都想捕获增量并将其发布到 pubsub。
我正在 python 中尝试所有这些。
代码片段:
ref = db.collection('country').document(city_id)
ref.update(body_json)
ref.on_snapshot(callback)
def callback(col_snapshot, changes, read_time):
for change in changes:
if change.type.name == 'ADDED':
print('ADDED')
elif change.type.name == 'MODIFIED':
print('MODIFIED')
elif change.type.name == 'REMOVED':
print('REMOVED')
print('end of callback')
现在,当我在 firestore 文档中进行更改时,例如:
- 添加新文档 - 我将打印结果显示为 ADDED 和 回调结束。
- 修改现有文档 - 我的打印结果大多为 ADDED,但有时或者更确切地说,在 10 次运行中我会同时得到 ADDED 和 MODIFIED。然后是回调结束。
- 删除任何文档 - 回调结束。有时(很少)REMOVED和回调结束。
我无法理解这种行为,也不知道如何处理这种无法打印的执行。
【问题讨论】:
标签: python google-cloud-firestore google-cloud-functions