我遵循了使用 Firebase 的 React-native 登录教程,我使用 create-react-native-app为了方便开发(我的 package.json ),我使用的是 NodeJS v6.10.1
,我使用的是 Note 4 Device(4.4.4),我启用了 Email/Password
在 Firebase 控制台中进行身份验证,出于某种原因我得到:
{
code: "auth/network-request-failed",
message: "A network error (such as timeout, interrupted connection or unreachable host) has occurred."
}
我没有忘记使用 firebase.initializeApp
,我的代码是:
firebase.auth().signInWithEmailAndPassword(email, password)
.catch(e0 => {
console.log(e0);
firebase.auth().createUserWithEmailAndPassword(email, password)
.catch(e1 => {
console.log(e1);
this.setState({ error: 'Authentication Failed.' });
});
});
对于两者,我得到相同的错误对象。
最佳答案
所以问题是:
这一切都始于这个调试器和设备时间已经漂移了 60 多秒
,由于其他与 adb 相关的问题我无法运行 adb shell "date -s
date +%m%d%H%M%Y.%S"
,在我解决我的 adb 问题后,我运行 adb shell "date -s
date +%m %d%H%M%Y.%S"
,现在 Firebase 错误是说:如超时
,adb(我的电脑)时间比设备 -4 分钟,所以为了解决这个问题,我更改了计算机上的时间,添加了 4 分钟,以便与设备时间匹配。
我认为是问题所在,我不是网络专家,所以如果有人能修正我的一些假设,如果有问题,请问:
为了解释我只使用虚幻的东西(reqTimestamp
,...),但这个概念是有效的(我希望):
设备使用时间戳和超时对请求进行签名,例如,reqTimestamp=22:16
、reqTimeout=22:17
,我的设备通过我的 wifi 连接,所以当调制解调器连接到我的电脑时,对我的电脑或调制解调器内部进行基本检查,例如:if(reqTimeout > timeNow) reject
,可以防止请求甚至离开我的网络,以便 Firebase 发出有关网络问题的一般错误。
关于javascript - 尝试登录时出现 React-native、Firebase 网络错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43458184/