簡體   English   中英

Firebase 模擬器不促進/運行新功能

[英]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 setup:emulators:firestore

如需進一步參考,您可以跟進 stackoverflow 線程12 ,其中 OP 提出了類似的問題,這可能會有所幫助。

編輯,新答案:

事實證明,您需要將該函數部署到 firebase 一次,以便模擬器識別該函數。

運行firebase deploy --only functions ,然后模擬您的數據庫,您應該會看到您的函數。

上一個答案:運行firebase setup:emulators:firestore我新添加的功能似乎可以在模擬器中運行。

您需要做的是npm run build在您的functions文件夾中運行構建。 編輯您的函數不會自動觸發構建,也不會識別您的新 function。部署有效的原因是它確實會觸發構建。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM