我正在使用Google Cloud Functions执行一些后端操作(例如,当天的计数/分组统计信息)。当Firebase数据库中的某个路径上发生某些事件(更新,创建)时,将触发这些功能。
我正在寻找一种提取已更新/创建的路径(和参数)的方法,这样我只能定位一部分。具体来说,如果路径path /messages/{pushId}/original
已更新,我想在python函数中提取动态参数{pushId}
。
回顾:
我们可以从Cloud Documentations部署具有相应触发器的云功能,如下所示:
以下gcloud命令部署了将被触发的功能 通过
path /messages/{pushId}/original
上的更新事件:
gcloud functions deploy YOUR_FUNCTION_NAME \
--trigger-event providers/google.firebase.database/eventTypes/ref.update \
--trigger-resource projects/YOUR-PROJECT-ID/instances/DATABASE-INSTANCE/refs/messages/{pushId}/original \
--runtime RUNTIME
然后我们可以在main.py
中编写一个函数,该函数将在上述路径已更新时触发:
import json
def hello_rtdb(data, context):
""" Triggered by a change to a Firebase RTDB reference.
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('Admin?: %s' % data.get("admin", False))
print('Delta:')
print(json.dumps(data["delta"]))
缺少链接现在是我们如何使用数据,上下文来获取参数{pushId}
的方式?