使用Cloud Functions从Firebase数据库中的路径上触发的事件中提取参数

时间:2019-01-15 11:33:03

标签: firebase google-cloud-platform google-cloud-functions

我正在使用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}的方式?

0 个答案:

没有答案