我用的是普通的Chrome浏览器。我正在使用第三方库- firebase来进行身份验证。我一直在犯这些错误:
auth/network-request-failed
A network error (such as timeout, interrupted connection or unreachable host) has occurred.
最后,在Firebase支持的帮助下,发现了这个问题:
- firebase SDK在发送身份验证请求之前检查
navigator.onLine
(https://github.com/firebase/firebase-js-sdk/blob/master/packages/auth/src/utils.js#L1176)
在我的Chrome浏览器中,navigator.onLine
始终是false
。发生以下情况:
- 我去的每个网站每个标签里
- 我所有的Chrome用户资料
- 没有任何Chrome扩展
- 在匿名标签中
Chrome信息(最新):
- 版本62.0.3202.94(Official Build)(64-bit)
在其他浏览器中,Safari和Firefox navigator.onLine
都正确地为true
。navigator.onLine
可靠吗?或者它被认为是错误的,或者是其他什么事情?我搜索了Chromium bug以获得更好的想法,但找不到任何线索https://bugs.chromium.org/p/chromium/issues/list?q=navigator.online
1条答案
按热度按时间eivnm1vs1#
这是一个已知的bug:https://bugs.chromium.org/p/chromium/issues/list?q=navigator.online
请尝试使用
online
和offline
事件。请参阅Vercel SWR中的解决方法:https://github.com/vercel/swr/blob/main/_internal/src/utils/web-preset.ts