错误:发生网络错误(如超时、连接中断或主机无法访问)
Posted
技术标签:
【中文标题】错误:发生网络错误(如超时、连接中断或主机无法访问)【英文标题】:Error: A network error (such as timeout, interrupted connection or unreachable host) has occurred 【发布时间】:2021-08-28 12:42:17 【问题描述】:我正在使用 expo 管理的工作流程,当我尝试使用 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 通道读取 信息:检测到非 HTTP/2 连接。
【问题讨论】:
我找到了一个可能有用的related case,您遇到的错误有一些可能的原因。 我已经尝试过他们在该页面上建议的内容。托管的 expo 项目实际上可以与模拟器套件一起使用吗? 您可能会发现此问题中的信息很有用:github.com/firebase/firebase-tools/issues/3258 还有这个:***.com/questions/62097398/… 【参考方案1】:显然,当您使用模拟器时,您应该将 localhost 替换为 10.0.2.2:8080,它应该可以正常工作。
【讨论】:
以上是关于错误:发生网络错误(如超时、连接中断或主机无法访问)的主要内容,如果未能解决你的问题,请参考以下文章
Firebase Authentication FirebaseNetworkException:发生网络错误(如超时、连接中断或无法访问主机)
Flutter Firebase Auth:出现网络错误(如超时、连接中断或主机不可达)