如何触发 Firebase 模拟器的 Pub/Sub 主题
Posted
技术标签:
【中文标题】如何触发 Firebase 模拟器的 Pub/Sub 主题【英文标题】:How to trigger Pub/Sub Topic for Firebase Emulator 【发布时间】:2021-07-29 01:01:09 【问题描述】:使用 Firebase 函数,我的代码通过 Google Cloud Scheduler Job 每小时运行一次。
看起来像这样:
exports.hourly_tick =
functions.pubsub.topic("hourly-tick").onPublish((message, context) =>
return getData()
.then((data) =>
sendEmail(data["message"]);
)
.catch((error) =>
return console.log("???? Caught error: ", error);
);
);
我需要能够在本地进行测试,并且能够从我的终端通过 firebase emulators:start 启动我的 Firebase 模拟器。但是我不知道如何在本地测试环境中触发此功能以查看本地模拟器中的日志。
如何使用本地模拟器测试这个预定的作业/firebase 功能?
【问题讨论】:
【参考方案1】:这是 Firebase 工具中的一项持续功能请求(请参阅 GitHub issue)。
正如帖子中提到的:
我认为我们可能误导了我们如何代表#2011。它允许将这些功能加载到模拟器中,但实际上并没有按计划触发它们。相反,您必须使用 Pub/Sub 消息手动触发它们。
您可以检查此 answer 的解决方法,您必须使用 Pub/Sub 消息手动触发计划功能。
【讨论】:
我也在考虑将逻辑复制到 http 请求导出中。所以为了测试,我可以在运行模拟器时点击那个端点。以上是关于如何触发 Firebase 模拟器的 Pub/Sub 主题的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 pubsub 模拟器在本地调用 firebase Schedule 函数
扑动 Firebase authStateChanges 没有被触发
如何在 Firebase Cloud Functions 中模拟辅助函数?