13

I am trying to develop API for my apps using Firebase cloud functions.
Following this site to use the firebase emulator suite for development and testing locally.

Issue: The changes are not reflected in the locally emulated functions.

Steps:

  1. index.js:

    exports.test = functions.https.onRequest(async (request, response) => {
       response.status(200).send("First");
    });
    
  2. Successfully deployed the test method.

    firebase deploy --only functions:test
    
  3. In Postman made the following GET request.

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

    Result: First
    Status: 200 OK

  4. Started the emulators:

    firebase emulators:start --only functions
    
  5. In Postman made the following GET request.

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

    Result: First
    Status: 200 OK
    Same as the actual deployed function.

  6. Changed the function code to:

    exports.test = functions.https.onRequest(async (request, response) => {
        response.status(200).send("Second");
    });
    
  7. Getting the same result as before when hitting the emulated function in localhost. The changes are not reflected.

Also, tried stopping the emulator and starting it again. No luck.

3
  • To be clear, are you expecting the emulator to reload the code dynamically after you change it? Did you save the file? If you think the emulator is not working correctly, you should file a bug on GitHub. github.com/firebase/firebase-tools Commented Nov 15, 2020 at 16:51
  • @DougStevenson, I have saved the file. Dynamically reload the code changes, load the code changes after restarting the emulator anything is fine. It is not loading the changes in any way until the code is deployed to production, which makes local emulators pointless. Commented Nov 15, 2020 at 17:15
  • @DougStevenson, I have filed a bug as suggested: github.com/firebase/firebase-tools/issues/2823. Commented Nov 15, 2020 at 17:27

1 Answer 1

17

I had raised an issue in the firebase-tools repo as suggested by DougStevenson. Got the issue resolved with Sam Stern's support.

Posting the solution here for anyone else who gets stuck in the same issue.

Solution:

  1. After every change to the ts files, run "npm run build" to compile the code again.
  2. Change "build": "tsc" to "build": "tsc -w" in package.json if you want to auto-compile after every change.
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.