Кажется, вы пытаетесь запустить этот код как скрипт, который, кажется, завершается до выполнения функции обратного вызова.Поэтому постарайтесь дать объекту 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()
;).