gpt4 book ai didi

python - python 的 Firestore 监听器

转载 作者:行者123 更新时间:2023-12-05 08:31:40 25 4
gpt4 key购买 nike

我想知道一种方法来监听 Firestore 文档中发生的任何更改,例如添加新文档或删除文档。但是我找不到关于此事的任何相关文档,所以如果有人在发布代码片段之前使用过它,请帮助我。

为了克服这个问题,我做了一个无限循环来检查每秒是否有任何变化,但是大约 15 分钟后,如果请求太多,我就会出错

编辑

在使用 On snapshot 监听器后,我的应用程序什么也没做,它只是正常运行,没有错误,然后终止并在我使用过的代码下方。

import firebase_admin
from firebase_admin import firestore , credentials

cred = credentials.Certificate("AdminSDK.json")
firebase_admin.initialize_app(cred)

db = firestore.client()


def on_snapshot(col_snapshot, changes, read_time):
print(u'Callback received query snapshot.')
print(u'Current cities in California: ')
for change in changes:
if change.type.name == 'ADDED':
print(u'New city: {}'.format(change.document.id))
elif change.type.name == 'MODIFIED':
print(u'Modified city: {}'.format(change.document.id))
elif change.type.name == 'REMOVED':
print(u'Removed city: {}'.format(change.document.id))
col_query = db.collection(u'NeedClassification')
query_watch = col_query.on_snapshot(on_snapshot)

最佳答案

我遇到了同样的问题,根本原因是我没有通过在末尾添加以下内容来让脚本继续运行:

while True:
time.sleep(1)
print('processing...')

作为引用,我的整个代码和输出是:

import firebase_admin
import google.cloud
from firebase_admin import credentials, firestore
import time

print('Initializing Firestore connection...')
# Credentials and Firebase App initialization. Always required
firCredentials = credentials.Certificate("./key.json")
firApp = firebase_admin.initialize_app (firCredentials)

# Get access to Firestore
db = firestore.client()
print('Connection initialized')

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

doc_ref = db.collection('audio').document('filename')
doc_watch = doc_ref.on_snapshot(on_snapshot)

# Keep the app running
while True:
time.sleep(1)
print('processing...')

输出(在添加循环之前,输出在连接初始化时停止):

Initializing Firestore connection...
Connection initialized
Received document snapshot: filename
processing...
processing...
processing...
processing...
processing...
processing...
Received document snapshot: filename
processing...
processing...
# ...[and so on]

希望这对您有所帮助。

关于python - python 的 Firestore 监听器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56513181/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com