【发布时间】:2021-11-09 00:15:19
【问题描述】:
我有三个云功能,其中两个已部署到我的 firebase 项目中,其中一个是我刚刚添加的。我希望在部署之前在本地测试新的,但是当我尝试使用它时,我无法使用它,并且只有两个已经部署的功能可用。
Firebase 模拟器像往常一样在端口 5001 上运行良好。我关注these instructions 并将firebase.functions().useEmulator("localhost", 5001); 添加到我想在本地测试的函数中:
已经部署的函数示例:
// 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";
【问题讨论】:
-
您能否简述一下您想要实现的目标和面临的问题?
-
@DivyaniYadav 尝试通过模拟器在本地运行我的功能,这样我就可以在部署之前先测试它们,而不是部署到 firebase、尝试它们、调试它们、再次部署等。
-
你能看看这个链接吗:stackoverflow.com/questions/56158010/… 有用吗?
-
@DivyaniYadav 我认为可以。我忽略了这个线程,因为我的模拟器一直在工作,而那个线程来自一个根本无法加载模拟器的用户。但我跑了
firebase setup:emulators:firestore,现在我新添加的功能可以工作了。谢谢。 -
按照您的指示更新了我的答案。
标签: javascript google-cloud-functions firebase-tools