ОС: Ma c ОС Catalina v 10.15.1
Python версия: Python 3.7.1
Я пишу функции облака в Python для быть вызванным записыванием / обновлением / et c. в базу данных Firestore. По сути, моя функция выглядит так в моем main.py
:
def hello_firestore(data, context):
""" Triggered by a change to a Firestore document.
Args:
data (dict): The event payload.
context (google.cloud.functions.Context): Metadata for the event.
"""
print("Hello")
. Я хочу, чтобы эта функция следила за обновлениями документа test_collection/test_document
. Я развернул эту функцию, используя:
gcloud functions deploy hello_firestore \
--runtime python37 --trigger-event providers/cloud.firestore/eventTypes/document.write \
--trigger-resource projects/PROJECT_ID/databases/default/documents/test_collection/test_document
Функция успешно развернута и отображается в моей консоли Firebase и в консоли GCP. У меня на локальном компьютере работает скрипт:
import firebase_admin
from firebase_admin import credentials
from firebase_admin import firestore
import time
cred = credentials.Certificate("./path/to/adminsdk.json")
firebase_admin.initialize_app(cred)
db = firestore.client()
doc_ref = db.collection(u'test_collection').document(u'test_document')
doc_ref.set({u'test_field':'test_value'})
time.sleep(60)
doc_ref.update({u'test_field':'new_value'})
База данных обновляется соответственно. Я ожидаю, что функция будет выполнена (поскольку условие триггера выполнено), и я ожидаю увидеть соответствующий вывод stdout
в журналах консоли Firestore или журналах консоли GCP. Однако там ничего нет - ни сообщения об ошибке, ни указания на событие триггера (единственные журналы - это те, которые возникают в результате развертывания функции). Кроме того, ручное редактирование базы данных в консоли Firestore не дает эффекта.
Я также пытался написать эту облачную функцию в Node.js (и соответственно развернуть ее), и результат тот же - никаких признаков того, что событие произошло.
Любые советы / предложения будут великолепны. Спасибо!