在云函数中组合Firebase数据触发器.create.update(可能还有.remove)

在云函数中组合Firebase数据触发器.create.update(可能还有.remove),firebase,firebase-realtime-database,google-cloud-platform,google-cloud-functions,Firebase,Firebase Realtime Database,Google Cloud Platform,Google Cloud Functions,我们可以编写一个云函数(例如python),如下所示: def some_function_update(data, context): # do some operations return True 并在Firebase数据库发生更改时调用它。例如,如果以下节点更改,则使用动态参数yyyymmdd和alert\u id: /alerts/{yyyymmdd}/{alert_id} 我们可以使用context.resource: trigger_resource = conte

我们可以编写一个云函数(例如python),如下所示:

def some_function_update(data, context):
   # do some operations
   return True
并在Firebase数据库发生更改时调用它。例如,如果以下节点更改,则使用动态参数
yyyymmdd
alert\u id

/alerts/{yyyymmdd}/{alert_id}
我们可以使用
context.resource

trigger_resource = context.resource
temp_params = trigger_resource.split('/')
environment = temp_params[6]
client_id   = temp_params[7]
除此之外,当我们将此功能部署到云功能时,我们必须在终端中执行以下操作:

gcloud functions deploy some_function_update --runtime python37 --trigger-event providers/google.firebase.database/eventTypes/ref.update --trigger-resource projects/_/instances/{INSTANE_NAME}/refs/alerts/{yyyymmdd}/{alert_id}
但是,我注意到函数
some\u function\u update
只有在有实际的
.update
时才会触发。但是,当我们添加新的警报id或日期时,不会触发该功能

我通过创建一个调用另一个函数的新函数来解决这个问题:

some_function_create(data, context)
    some_function_update(data, context)
并使用以下方式进行部署:

gcloud functions deploy some_function_create --runtime python37 --trigger-event providers/google.firebase.database/eventTypes/ref.create --trigger-resource projects/_/instances/{INSTANE_NAME}/refs/alerts/{yyyymmdd}/{alert_id}

然而,我发现每次部署两个功能都很麻烦,因此我想知道是否有更聪明的方法可以一次性完成这项工作?

我觉得很奇怪,这个问题还没有得到答案。也许我遗漏了一些东西,但firebase通常为云函数提供
write
触发器。根据文件,这将是:
providers/google.firebase.database/eventTypes/ref.write

这将使您的部署代码:

gcloud functions deploy some_function_create --runtime python37 --trigger-event providers/google.firebase.database/eventTypes/ref.write --trigger-resource projects/_/instances/{INSTANCE_NAME}/refs/alerts/{yyyymmdd}/{alert_id}

我还没有测试过,但从文档来看,这确实是解决方案