[英]Firebase emulator not facilitating/running new functions
我有三個雲功能,其中兩個已部署到我的 firebase 項目中,其中一個是我剛剛添加的。 我希望在部署之前在本地測試新的,但是當我嘗試使用它時卻無法使用,而且只有兩個已經部署的功能可用。
Firebase 模擬器像往常一樣在端口5001
上運行良好。 我按照這些說明添加了firebase.functions().useEmulator("localhost", 5001);
到我想在本地測試的功能:
已經部署的 func 示例:
// index.js
exports.addMessage = functions.region("europe-west1").https.onRequest(...
尚未部署的功能:
// index.js
exports.testFunction = functions.useEmulator("localhost", 5001).https.onRequest(...
然后我去了https://localhost:5001/{projectId}/us-central1/testFunction
,但是瀏覽器顯示一條消息說只有addMessage
和我的其他部署的功能可以使用。 我也嘗試http
,正如另一個線程中推薦的那樣。
我在這里缺少一個步驟嗎? 某種“本地”部署? 我知道 firebase 版本中有一些變化可能會把事情搞砸,但我在運行firebase init
時使用默認導入/依賴項 firebase 安裝:
// package.json
"dependencies": {
"firebase-admin": "^9.8.0",
"firebase-functions": "^3.14.1"
},
//index.js
import * as functions from "firebase-functions";
import * as admin from "firebase-admin";
編輯,新答案:
事實證明,您需要將該函數部署到 firebase 一次,以便模擬器識別該函數。
運行firebase deploy --only functions
,然后模擬您的數據庫,您應該會看到您的函數。
上一個答案:運行firebase setup:emulators:firestore
我新添加的功能似乎可以在模擬器中運行。
您需要做的是npm run build
在您的functions
文件夾中運行構建。 編輯您的函數不會自動觸發構建,也不會識別您的新 function。部署有效的原因是它確實會觸發構建。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.