Ошибка: произошла сетевая ошибка (например, тайм-аут, прерванное соединение или недоступный хост)

Я работаю с рабочим процессом, управляемым экспо, и всегда получаю эту ошибку Firebase, когда пытаюсь использовать набор эмуляторов Firebase. Я пробовал несколько вещей, но просто не могу подключить свой проект (я работаю с эмулятором Android) к набору эмуляторов.

Это мой экземпляр Firebase;

    import firebase from "firebase/app";
    import "firebase/firestore";
    import "firebase/auth";
    
    const firebaseConfig = {
      apiKey: "",
      authDomain: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: "",
      measurementId: "",
    };
    
    !firebase.apps.length ? firebase.initializeApp(firebaseConfig) : firebase.app();
    
    export const db = firebase.firestore();
    export const auth = firebase.auth();
    
    if (__DEV__) {
      db.settings({
        host: "localhost",
        ssl: false,
      });
      auth.useEmulator("http://localhost:9099");
    }
    
    export default firebase;

И это часть аутентификации

        import { auth, db } from "./firebase";
    
    const regUsers = async (userCred) => {
      try {
        const user = await auth.createUserWithEmailAndPassword(
          userCred.email,
          userCred.password
        );
    
        if (user) {
          const currentUser = auth.currentUser.uid;
          try {
            await db.collection("users").doc(currentUser).set({
              name: userCred.name,
              email: userCred.email,
              matricNumber: userCred.matricNumber,
              dateCreated: new Date(),
            });
          } catch (error) {
            console.log(
              "Something went wrong while saving user credentials",
              error
            );
          }
          return user;
        }
      } catch (error) {
        console.log("Something went wrong while registering user", error);
      }
    };
    
    const loginUser = async (userCred) => {
      try {
        const result = await auth.signInWithEmailAndPassword(
          userCred.email,
          userCred.password
        );
        if (result) {
          const currentUser = auth.currentUser.uid;
          return currentUser;
        }
      } catch (error) {
        console.log("Something went wrong while login user", error);
      }
    };
    
    export default {
      regUsers,
      loginUser,
    };

Каждый раз, когда я пытаюсь войти или зарегистрировать пользователя, я получаю эту ошибку. Кто-нибудь знает, что еще я могу попробовать. Ошибка возникает только тогда, когда я пытаюсь подключиться к эмулятору, а интернет-соединение ужасно там, где я нахожусь. Я также заметил это предупреждение в моем журнале отладки firestore. io.gapi.emulators.netty.HttpVersionRoutingHandler channelRead INFO: обнаружено соединение, отличное от HTTP / 2.


comment
Я нашел связанный случай, который может оказаться полезным, есть несколько возможных причин получаемой вами ошибки.   -  person Vicky    schedule 14.06.2021
comment
Я уже пробовал то, что они предлагали на этой странице. Может ли управляемый выставочный проект действительно работать с пакетом эмуляторов?   -  person Tomiwa    schedule 16.06.2021
comment
Вы можете найти информацию в этом выпуске полезной: github.com/firebase/firebase-tools/ issues / 3258   -  person Javier A    schedule 28.06.2021
comment
И этот: stackoverflow.com/questions/62097398/   -  person Javier A    schedule 28.06.2021


Ответы (1)


Очевидно, когда вы работаете с эмулятором, вам следует заменить localhost на 10.0.2.2:8080, и он должен работать нормально.

person Tomiwa    schedule 29.06.2021