【发布时间】:2018-03-18 02:12:22
【问题描述】:
在加载页面的 4 次中大约有 3 次我从 Firestore 客户端 SDK(Web)收到此错误。这极大地减慢了开发速度。身份验证、实时数据库和存储工作得很好。
Failed to get document because the client is offline.
对此我有什么办法吗?
【问题讨论】:
标签: firebase google-cloud-firestore
在加载页面的 4 次中大约有 3 次我从 Firestore 客户端 SDK(Web)收到此错误。这极大地减慢了开发速度。身份验证、实时数据库和存储工作得很好。
Failed to get document because the client is offline.
对此我有什么办法吗?
【问题讨论】:
标签: firebase google-cloud-firestore
目前客户端和后端路由之间的交互会导致此问题。结果客户端认为网络出现故障并离线。
我们很快就会推出解决方案。我无法保证确切的时间,但这是我们要解决的首要问题之一。
感谢您的耐心等待。
【讨论】:
我更新了所有的软件包,但遇到了这个问题。
我为我的 Web 应用启用了离线持久性并解决了问题:
firebase.firestore().enablePersistence()
https://firebase.google.com/docs/firestore/manage-data/enable-offline
【讨论】:
对我来说,同样的错误发生在
错误信息非常具有误导性。
【讨论】:
我刚刚花了大约 3 个小时试图修复它。我的模拟器有问题。我不得不删除它,然后创建新的,现在它正在工作。因此,如果您遇到此问题,请尝试一下。
【讨论】:
出现问题的原因可能是您在 React Native(RN CLI 而非 Expo)应用中集成了 firebase 'web' SDK。因此,为了在您的 react native 应用程序中使用 firebase,您必须遵循本教程:https://rnfirebase.io/
它必须有效。
【讨论】:
对我来说,只需重新启动模拟器即可修复它。
【讨论】:
在我的应用程序中,安装后第一次运行时也会出现此错误。我能够通过刷新/重新启动 Activity 来摆脱上述错误。
if (e.getMessage().equals("Failed to get document because the client is offline.")){
finish();
startActivity(getIntent());
}
此代码必须放在addOnFailureListener。
【讨论】:
我遇到了一些问题。但我刚刚修好了。检查您的 projectId 是否正确。当您使用 Cloud Firestore 时,您需要它。
export const environment = {
production: false,
firebaseConfig: {
apiKey: 'XYZ',
authDomain: 'XYZ.firebaseapp.com',
databaseURL: 'https://XYZ.firebaseio.com',
storageBucket: 'XYZ.appspot.com',
projectId: 'XYZ' // <--- make sure project ID is here
}
};
【讨论】:
对我来说,启用({ synchronizeTabs: true } ) 似乎有所帮助。
【讨论】:
以防万一有人在网络上遇到此问题(服务器端代码),只需尝试重新启动服务器并再次 ping 连接到 firebase 的端点即可。这对我有用!
【讨论】:
就我而言,我使用的是 Chrome 扩展程序 Moesif CORS。我禁用了扩展程序,它工作了。
【讨论】:
在我的情况下,我遇到了这个问题,并警告我应该更改我的数据库位置,因为它位于不同的区域。
我在 firebaseconfig 中使用我的 dsatabase 的 url 添加了一个 databaseURL 属性,之后它就可以正常工作了。
【讨论】:
我的问题是我之前使用firebase-local-emulator 测试了我的应用程序,因此它的一些配置仍然启用,例如:
Firebase.firestore.apply {
if (DomainConstants.isOnTest) useEmulator("10.0.2.2", 8080)
}
由于忘记设置isOnTest = false,应用依赖firebase-local-emulators数据(未运行)并抛出client is offline error。
长话短说:检查您是否使用 firebase-local-emulator 配置了项目,并在您想使用“真实”数据库时将其关闭
【讨论】:
尝试使用VPN,它会工作! 我切换到 VPN,它工作 100%。有时 Firebase 无法响应某些国家/地区的 IP 地址。
【讨论】: