gpt4 book ai didi

python - Firestore (python) 监听器完成脚本而不是监听更改

转载 作者:行者123 更新时间:2023-12-01 00:32:26 26 4
gpt4 key购买 nike

我正在尝试在 python 上设置一个 firestore on_snapshot 监听器。然而,当我运行该程序时,它没有执行任何操作就完成了运行,更不用说监听了。

我错过了什么?

我尝试一次性读取,即 .get() 并且它有效,所以我知道这不是包/凭据问题。

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

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

db = firestore.client()

doc_ref = db.collection(u'someCollection').document(u'someDoc')

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

doc_watch = doc_ref.on_snapshot(on_snapshot)

最佳答案

您似乎试图将此代码作为脚本运行,该脚本似乎在执行回调函数之前终止。因此,请尝试让 doc_watch 对象存活足够长的时间。

例如,使用 sleep :

from time import sleep

import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore

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

db = firestore.client()

doc_ref = db.collection(u'someCollection').document(u'someDoc')

def on_snapshot (doc_snapshot, changes, read_time):
global count
for doc in doc_snapshot:
print(u'New doc data: {}'.format(doc.id))

doc_watch = doc_ref.on_snapshot(on_snapshot)

sleep(3)

doc_watch.unsubscribe()

并且不要忘记在最后unsubscribe();)。

关于python - Firestore (python) 监听器完成脚本而不是监听更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58076033/

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