![](/img/trans.png)
[英]How to invoke firebase Schedule functions locally using pubsub emulator
[英]Firebase functions won't see pubsub emulator running locally
我正在嘗試在本地使用 pubsub 運行 firebase 函數。
已使用firebase init emulators
配置了仿真器。
firebase emulators:start --only pubsub
工作正常,我可以看到日志:
┌──────────┬────────────────┐
│ Emulator │ Host:Port │
├──────────┼────────────────┤
│ Pub/Sub │ localhost:8085 │
└──────────┴────────────────┘
firebase.json 中的 pubsub 模擬器配置:
"pubsub": {
"host": "localhost",
"port": 8085
},
一個 pubsub 處理程序 function 被導出:
exports.testPubsub = functions.pubsub.topic("test-pubsub").onPublish(async (message) => {
console.log(`test event received by pubsub handler: ${message.json}`);
});
我運行 firebase 功能: firebase serve --only functions
此行出現在控制台 output 中:
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."}}
這意味着找到了 function 但由於某種原因 firebase 無法連接到 pubsub 模擬器,盡管有所有配置。
這里是一個問題:如何在本地機器上測試 pubsub 和 firebase 功能?
經過數小時的努力,我終於設法使 pubsub 模擬器工作。
firebase 文檔中沒有關於firebase serve
的內容,所以我想這是一個不推薦使用的命令。 我發現的只是firebase emulators:start
。
我按照為模擬功能設置管理員憑據:部分中的說明進行操作。 創建一個密鑰並下載 json,在終端中導出變量並運行firebase emulators:start
。
那行得通,我可以看到我的登錄輸出。
不能確定是什么問題,但看起來你不能firebase serve
並與模擬器取得聯系。 如果您希望它們相互協作,您必須運行所有模擬器。
筆記:
npm run build
const pubsub = new PubSub({
projectId: "your-test-project",
});
const topic = pubsub.topic("test-pubsub");
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.