如何在 Firebase 云函数处理程序中设置主题过滤器?

How do I set a topic filter in a Firebase cloud functions handler?

我创建了一个云函数来监听 pubsub 主题。部署后,这会创建对正确主题的订阅,并按照我的预期运行。

export const handler = functions.pubsub.topic("topicName").onPublish(( message, context ) => {
    // code that runs
});

使用的部署命令是:

firebase deploy --only functions

我的问题:如何为主题设置订阅过滤器,以便(例如)如果属性是特定值,我只 运行 云函数?

我知道如何在控制台中通过手动创建订阅并在创建订阅时创建过滤器来执行此操作,但我找不到任何有关如何在 Firebase 云函数中执行此操作的文档。

根据我对 CF Pub/Sub 触发器的理解,部署 Cloud Function 后也会创建订阅,并且目前无法在订阅创建后修改订阅,因此我不确定是什么由于 Pub/Sub Cloud Functions 的后端,您想要实现的是可能的。

我尝试使用 HTTP 触发器 CF 重现一个潜在的解决方法,只有当手动创建的过滤器是完成了,看起来好像成功了。

我遵循了这些步骤:

  • 创建HTTP函数获取函数URL
  • 创建 Pub/Sub 主题
  • 创建订阅类型 PUSH 到函数 URL 和过滤器 attributes.domain = example.com
  • 然后在对应的topic上UI->发布消息->添加属性Key=attributes.domain and Value=example.com
  • 发布时触发函数

但是,您应该记住,由于它是 HTTP CF,因此需要进一步的身份验证过程来维护安全性。