Firebase 函数不会在本地看到 pubsub 模拟器 运行
Firebase functions won't see pubsub emulator running locally
我正在尝试 运行 firebase 在本地使用 pubsub 函数。
已使用 firebase init emulators
配置模拟器。
firebase emulators:start --only pubsub
正常工作,我可以看到日志:
┌──────────┬────────────────┐
│ Emulator │ Host:Port │
├──────────┼────────────────┤
│ Pub/Sub │ localhost:8085 │
└──────────┴────────────────┘
firebase.json 中的 pubsub 模拟器配置:
"pubsub": {
"host": "localhost",
"port": 8085
},
已导出 pubsub 处理函数:
exports.testPubsub = functions.pubsub.topic("test-pubsub").onPublish(async (message) => {
console.log(`test event received by pubsub handler: ${message.json}`);
});
I 运行 firebase 函数具有:firebase serve --only functions
此行出现在控制台输出中:
functions[pubsub-testPubsub]: function ignored because the pubsub emulator does not exist or is not running. {"metadata":{"emulator":{"name":"functions"},"message":"function ignored because the pubsub emulator does not exist or is not running."}}
这意味着找到了功能,但出于某种原因,尽管进行了所有配置,firebase 仍无法连接到 pubsub 模拟器。
问题是:
如何在本地机器上测试 pubsub 和 firebase 功能?
经过几个小时的努力,我终于设法让 pubsub 模拟器工作。
firebase docs 中没有关于 firebase serve
的内容,所以我猜这是一个已弃用的命令。我只找到 firebase emulators:start
.
我按照 为模拟功能设置管理员凭据: 部分中的说明进行操作。创建密钥并下载 json,在终端中导出变量和 运行 firebase emulators:start
.
成功了,我可以看到我的登录输出。
无法确定问题出在哪里,但出于某种原因,您似乎无法 firebase serve
并与模拟器取得联系。如果您希望它们相互协作,您必须 运行 所有模拟器。
备注:
- 如果您使用的是打字稿,请不要忘记 运行
npm run build
- 创建主题时,projectId 选项应该足够了:
const pubsub = new PubSub({
projectId: "your-test-project",
});
const topic = pubsub.topic("test-pubsub");
我正在尝试 运行 firebase 在本地使用 pubsub 函数。
已使用 firebase init emulators
配置模拟器。
firebase emulators:start --only pubsub
正常工作,我可以看到日志:
┌──────────┬────────────────┐
│ Emulator │ Host:Port │
├──────────┼────────────────┤
│ Pub/Sub │ localhost:8085 │
└──────────┴────────────────┘
firebase.json 中的 pubsub 模拟器配置:
"pubsub": {
"host": "localhost",
"port": 8085
},
已导出 pubsub 处理函数:
exports.testPubsub = functions.pubsub.topic("test-pubsub").onPublish(async (message) => {
console.log(`test event received by pubsub handler: ${message.json}`);
});
I 运行 firebase 函数具有:firebase serve --only functions
此行出现在控制台输出中:
functions[pubsub-testPubsub]: function ignored because the pubsub emulator does not exist or is not running. {"metadata":{"emulator":{"name":"functions"},"message":"function ignored because the pubsub emulator does not exist or is not running."}}
这意味着找到了功能,但出于某种原因,尽管进行了所有配置,firebase 仍无法连接到 pubsub 模拟器。
问题是: 如何在本地机器上测试 pubsub 和 firebase 功能?
经过几个小时的努力,我终于设法让 pubsub 模拟器工作。
firebase docs 中没有关于 firebase serve
的内容,所以我猜这是一个已弃用的命令。我只找到 firebase emulators:start
.
我按照 为模拟功能设置管理员凭据: 部分中的说明进行操作。创建密钥并下载 json,在终端中导出变量和 运行 firebase emulators:start
.
成功了,我可以看到我的登录输出。
无法确定问题出在哪里,但出于某种原因,您似乎无法 firebase serve
并与模拟器取得联系。如果您希望它们相互协作,您必须 运行 所有模拟器。
备注:
- 如果您使用的是打字稿,请不要忘记 运行
npm run build
- 创建主题时,projectId 选项应该足够了:
const pubsub = new PubSub({
projectId: "your-test-project",
});
const topic = pubsub.topic("test-pubsub");