Firebase 云函数本地代码更改未反映在模拟器中
Firebase cloud function local code changes are not reflected in emulators
我正在尝试使用 Firebase 云函数为我的应用程序开发API。
关注 this 站点以使用 firebase 模拟器套件在本地进行开发和测试。
问题:更改未反映在本地模拟函数中。
步骤:
index.js:
exports.test = functions.https.onRequest(async (request, response) => {
response.status(200).send("First");
});
已成功部署 test
方法。
firebase deploy --only functions:test
在 Postman 中发出了以下 GET 请求。
https://us-central1-<project-name>.cloudfunctions.net/test
结果:第一个
状态:200 正常
启动模拟器:
firebase emulators:start --only functions
在 Postman 中发出了以下 GET 请求。
http://localhost:5001/<project-name>/us-central1/indexTest
结果:第一个
状态:200 正常
与实际部署的功能相同。
功能代码修改为:
exports.test = functions.https.onRequest(async (request, response) => {
response.status(200).send("Second");
});
在本地主机中点击模拟函数时得到与以前相同的结果。更改未反映出来。
此外,尝试停止模拟器并重新启动它。运气不好。
我按照 DougStevenson 的建议在 firebase-tools 回购中提出了一个问题。
在 Sam Stern 的支持下解决了问题。
在此处发布解决方案,供遇到相同问题的其他人使用。
解法:
- 每次修改ts文件后,运行 "npm 运行 build" 再次编译代码。
- 如果您想在每次更改后自动编译,请在
package.json
中将 "build": "tsc"
更改为 "build": "tsc -w"
。
我正在尝试使用 Firebase 云函数为我的应用程序开发API。
关注 this 站点以使用 firebase 模拟器套件在本地进行开发和测试。
问题:更改未反映在本地模拟函数中。
步骤:
index.js:
exports.test = functions.https.onRequest(async (request, response) => { response.status(200).send("First"); });
已成功部署
test
方法。firebase deploy --only functions:test
在 Postman 中发出了以下 GET 请求。
https://us-central1-<project-name>.cloudfunctions.net/test
结果:第一个
状态:200 正常启动模拟器:
firebase emulators:start --only functions
在 Postman 中发出了以下 GET 请求。
http://localhost:5001/<project-name>/us-central1/indexTest
结果:第一个
状态:200 正常
与实际部署的功能相同。功能代码修改为:
exports.test = functions.https.onRequest(async (request, response) => { response.status(200).send("Second"); });
在本地主机中点击模拟函数时得到与以前相同的结果。更改未反映出来。
此外,尝试停止模拟器并重新启动它。运气不好。
我按照 DougStevenson 的建议在 firebase-tools 回购中提出了一个问题。 在 Sam Stern 的支持下解决了问题。
在此处发布解决方案,供遇到相同问题的其他人使用。
解法:
- 每次修改ts文件后,运行 "npm 运行 build" 再次编译代码。
- 如果您想在每次更改后自动编译,请在
package.json
中将"build": "tsc"
更改为"build": "tsc -w"
。