首页 > 解决方案 > Firebase 云功能本地代码更改未反映在模拟器中

问题描述

我正在尝试使用 Firebase 云功能为我的应用程序开发 API。关注此
站点以使用 firebase模拟器套件在本地进行开发和测试。

问题:更改未反映在本地模拟函数中。

脚步:

  1. index.js:

    exports.test = functions.https.onRequest(async (request, response) => {
       response.status(200).send("First");
    });
    
  2. 成功部署该test方法。

    firebase deploy --only functions:test
    
  3. 在 Postman 中发出以下 GET 请求。

     https://us-central1-<project-name>.cloudfunctions.net/test
    

    结果:第一个
    状态:200 OK

  4. 启动模拟器:

    firebase emulators:start --only functions
    
  5. 在 Postman 中发出以下 GET 请求。

     http://localhost:5001/<project-name>/us-central1/indexTest
    

    结果:第一个
    状态:200 OK
    与实际部署的功能相同。

  6. 将功能代码更改为:

    exports.test = functions.https.onRequest(async (request, response) => {
        response.status(200).send("Second");
    });
    
  7. 在 localhost 中点击模拟函数时获得与以前相同的结果。更改未反映。

另外,尝试停止模拟器并重新启动它。没运气。

标签: node.jsfirebasegoogle-cloud-functionsfirebase-tools

解决方案


按照 DougStevenson 的建议,我在 firebase-tools 存储库中提出了一个问题。在 Sam Stern 的支持下解决了这个问题。

在这里为遇到相同问题的其他人发布解决方案。

解决方案:

  1. 每次更改 ts 文件后,运行“npm run build”再次编译代码。
  2. 如果您想在每次更改后自动编译,请更改"build": "tsc""build": "tsc -w"in 。package.json

推荐阅读