我刚刚从firebase@9.0.0-beta.7到firebase@9.0.1遇到以下错误:CCD_ 1。
我正在使用安卓工作室模拟器运行ExpoGo中的移动应用程序。在应用程序中,Auth运行良好,因为我可以让用户登录和注销,但当我尝试使用Firestore执行某些操作时,我会收到以下错误:Failed to get document because the client is offline.
例如,在基本的getDoc()函数中会发生这种情况
const dbRef = doc(db, 'exampleColletion', 'id');
await getDoc(dbRef).then(document => {
const information = document.data();
if (information !== undefined) {
eventsRetreived(information);
}
}).catch((err) => {
eventsRetreived(err);
console.log(err.message)
})
我已经使用firebase@9.0.1
或firebase@9.0.0
进行了一些测试,但在这两种情况下,我都面临着相同的问题,但在firebase@9.0.0-beta.7
中,一切都很好(我没有更改任何代码,只更改firebase的版本)。
如果需要更多的代码或信息,请告诉我需要添加什么,我会根据需要编辑这篇文章。
EDIT
发现了相关的github问题,但即使已关闭,我在测试后仍面临该问题firebase@9.0.2
https://github.com/firebase/firebase-js-sdk/issues/5402
EDIT2
这个问题似乎出现在Expo v.42中。目前Expo默认支持兼容版本的Firebase,因此目前的解决方案是使用firebase@9.0.0-beta.7
或Expo支持并通过expo install firebase
安装的兼容版本
我可以使用以下设置使其工作:
initializeFirestore(firebaseInstance.current, {
// @ts-ignore
useFetchStreams: false,
cacheSizeBytes: 100000000,
})
似乎iOS不想用Fetch API玩得很好,使用useFetchStreams
就只能用XMLHttpRequest
了,这似乎对我来说很有用。我在@firebase/firestore: Firestore (9.0.0): Could not reach Cloud Firestore backend. Backend didn't respond within 10 seconds
0防火基地。