Firebase Emulator Cloud Functions + PubSub 订阅生产主题

Posted

技术标签:

【中文标题】Firebase Emulator Cloud Functions + PubSub 订阅生产主题【英文标题】:Firebase Emulator Cloud Functions + PubSub subscribe to production topics 【发布时间】:2021-06-21 21:17:54 【问题描述】:

有一项服务正在向我的 Pub/Sub 发布消息。通过 CLI,我知道它正在正确接收消息。

我想对这些消息做出相应的反应。但是,我想通过 Cloud Functions 在开发环境(firebase 模拟器)中开发我的订阅,因此我不必在每次部署之间等待 5 分钟。但是,当使用functions.pubsub.topic('topicName').onPublish(...) 时,它不会订阅真正的 prod 消息,看起来它只会订阅 dev env 的消息。

我想在我的 firebase 模拟 Sub/Pub 中订阅产品消息。有可能做到吗?怎么样?

【问题讨论】:

【参考方案1】:

还没有找到“官方”的方式。

我现在做的是使用ngrok,获取本地函数url,然后在Pub/Sub Subscription中以Push模式输入。这是一条更长的路,需要更新每个会话的 ngrok url(因为它的 url 在免费层中发生变化),并且还要获取数据,JSON.parse(Buffer.from(req.body.message.data, 'base64').toString('utf-8')) 并且仍然没有找到一种方法来从请求中验证 JWT 身份验证。

但是,我现在可以根据需要从 Firebase 模拟器获取 Prod 消息。您可以在此处发表评论,询问有关我的解决方法的更多信息。

【讨论】:

以上是关于Firebase Emulator Cloud Functions + PubSub 订阅生产主题的主要内容,如果未能解决你的问题,请参考以下文章

Firebase Pub Sub Emulator 未收到消息

无法将 Firebase Cloud Storage Function 范围限定为本地模拟器上的特定存储桶

如何使用用于 JS 开发的 firebase Emulator 设置 firebase firestore 和云功能测试套件

从 CLI 启动时,Firebase Local Emulator Suite 找不到“database.rules.json”文件

Cloud Datastore Emulator 在 Android 测试站中使用时返回 503 'Service Unavailable'

Firebase serve --only functions VS local emulator 在本地运行云功能?