3

Hi I am currently using firebase's local emulator and flutter. However, I am using a real device and not a simulator therefore I do not know how to connect to my laptops localhost. I am currently using this code

  // [Firestore | localhost:8080]
  FirebaseFirestore.instance.settings = const Settings(
    host: "localhost:8080",
    sslEnabled: false,
    persistenceEnabled: false,
  );

  // [Authentication | localhost:9099]
  await FirebaseAuth.instance.useEmulator("http://localhost:9099");

  FirebaseFunctions.instance.useFunctionsEmulator(
      origin: "http://localhost:5001"
  );

  // [Storage | localhost:9199]
  await FirebaseStorage.instance.useEmulator(
    host: "localhost",
    port: 9199,
  );

2 Answers 2

8

Ok I fixed the problem by these two steps:

firebase.json:

{
  ...
  "emulators": {
    "auth": {
      "host": "0.0.0.0", <--- Adding host
      "port": 9099
    },
    "functions": {
      "host": "0.0.0.0",
      "port": 5001
    },
    "firestore": {
      "host": "0.0.0.0",
      "port": 8080
    },
    "storage": {
      "host": "0.0.0.0",
      "port": 9199
    },
    "ui": {
      "enabled": true
    }
  },
  ...
}

flutter main.dart:

const String localIp = "You local ip goes here";



FirebaseFirestore.instance.settings = const Settings(
  host: localIp+":8080",
  sslEnabled: false,
  persistenceEnabled: false,
);

await FirebaseAuth.instance.useEmulator("http://"+localIp+":9099");

FirebaseFunctions.instance.useFunctionsEmulator(
    origin: "http://"+localIp+":5001"     
);

await FirebaseStorage.instance.useEmulator(
  host: localIp,
  port: 9199,
);
Sign up to request clarification or add additional context in comments.

3 Comments

Thanks! Remember to consider the region if your local functions are set up to a specific region: FirebaseFunctions.instanceFor(region: 'europe-west1').useFunctionsEmulator('192.168.50.43', 5001); cloud_functions@^3.0.3 syntax
No http://... is actually needed. Your IP address is already enough!
I do not found the firebase.json file in my project directory. Can you help?
0

Besides the accepted answer, do not forget to also allow unencrypted traffic in your AndroidManifest.xml when developing for Android. See this answer, on how to do it.

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.