如何配置 Firebase Cloud 函数模拟器,以便我的函数接收来自真实云主题的消息

问题描述 投票:0回答:1

我希望能够在 Firebase 模拟器中本地测试我的云功能,让它从 Firebase 云环境中的实际主题(而不是来自 Firebase PubSub 模拟器)接收消息。

我已将 GOOGLE_APPLICAITON_CREDENTIALS 环境变量配置为指向我的管理员凭据,如下所述:https://firebase.google.com/docs/functions/local-emulator#set_up_admin_credentials_optional

我的 Firebase 功能应用程序如下所示:

initializeApp();

export const playBillingMessageReceived : CloudFunction<CloudEvent<MessagePublishedData>> 
  = onMessagePublished(PLAY_BILLING_TOPIC, messagePublishedPlayBillingHandler);

当我执行

firebase emulators:start --only functions
时,模拟器启动,但控制台显示:

+  functions: Loaded functions definitions from source: playBillingMessageReceived.
i  functions[us-central1-playBillingMessageReceived]: function ignored because the pubsub emulator does not exist or is not running.

我的函数从未收到发布到我的主题的消息。

如何让 Firebase 模拟器中的函数连接到云中的主题并接收来自云中主题的消息?

firebase google-cloud-functions firebase-cloud-messaging google-cloud-pubsub firebase-tools
1个回答
0
投票

您无法通过发布到 Cloud Pub/Sub 中非模拟主题的消息来触发在模拟器中运行的 Firebase Cloud Function。如文档中所述:

Cloud Functions 模拟器支持以下来源的后台触发函数:

  • 实时数据库模拟器
  • Cloud Firestore 模拟器
  • 身份验证模拟器
  • Pub/Sub 模拟器
© www.soinside.com 2019 - 2024. All rights reserved.