我可以使用firebase firestore python admin sdk,并且对于我正在使用的功能代码相同的文档,它可以响应firestore db的更改。
对于云功能,我使用在线编辑器来创建和部署功能。
当进入测试选项时,我无法找到任何有关json数据的格式的信息。无论我输入什么,我都会收到一条消息,提示无法解析json文本。
如果我将json参数留为空白并触发测试选项,我将返回一个追溯,因为没有为所使用的数据定义任何变量。数据参数为空。但是该功能从测试选项触发。
我在尝试中添加了内容,只是为了避免出错而得到的结果。结果我没事。
我正在使用他们提供的简单示例之一进行测试。它尝试从data参数中提取oldValue和value。
import json
def hello_write(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.
"""
trigger_resource = context.resource
print('Function triggered by change to: %s' % trigger_resource)
print('GOT DATA', data)
print('\nOld value:')
try:
print(json.dumps(data["oldValue"]))
except Exception as e:
print('GOT OLD ERROR', str(e))
print('\nNew value:')
try:
print(json.dumps(data["value"]))
except Exception as e:
print('GOT ERROR ON NEW', str(e))
上下文很好,因为我将其打印出来并指向正确的文档。
如果我转到Firestore控制台并对该文档进行更改,那么很遗憾,该功能未触发。我设置了触发器来编写,因为那应该可以进行任何更改,但是什么也没有发生。日志中没有任何内容指示任何操作。
所以我被卡住了,不知道该怎么办。
我想知道的一件事是我可以在json测试参数中放入什么以及json应该采用什么格式。我找不到任何信息。
但是无论如何,从控制台更改文档时,至少应该触发该功能。
当我使用python admin sdk时,肯定会发生这种情况。每当我对文档进行更改时,程序中都会触发一个触发器。
我想我缺少一些步骤。如果有人有任何想法将非常有帮助。