【发布时间】:2019-04-10 19:09:45
【问题描述】:
总结
我在我的项目中使用 react-native-firebase,并且我正在运行纯 react-native(无世博会)。但是,在向 Firestore 上的任何文档发出获取请求时,都不会给出响应。也就是说,在 try-catch 块中,它既不会解决,也不会被拒绝,它会永远持续下去。 (是的,我知道 Promise 并且我正在使用 await/async,所以它不是等待 Promise 完成,事实上,主要的是 Promise 没有得到解决/拒绝)
主要问题是这个问题是随机出现的,不是每次都失败,它是随机出现的。仔细观察后,我还观察到,这主要发生在我不断执行 get 请求时,例如,我有一个查询来检查文档中的最新版本,现在每当我重新加载应用程序时,都会进行这个 get 查询,并且在 2-3 次频繁重新加载时,此查询永远不会解决。
我可以做所有其他 Firebase 工作,例如检查身份验证、设置文档数据、删除、修改编辑等。但这行不通
一点背景故事
这是我在 react-native 和 react-native-firebase 中的第一个项目。过去,我一直致力于 Ionic 和原生 Android (Java)。我从来没有在那里遇到过这个问题。我在互联网上搜索了很多,我得到的一些解决方案主要是针对 Firebase Web SDK,而不是针对 react-native-firebase。 我找到了一个解决方案,关于从身份验证控制台重置用户,但这也从未奏效。我提出了我找到的链接(供参考,因为我的问题与此非常相似,主要区别在于我使用的是 react-native-firebase,而不是 Firebase Web SDK)。
https://github.com/firebase/firebase-js-sdk/issues/533
代码示例
获取查询(我正在使用的几个代码示例)
let updateData = await firebase.firestore().doc('Updates And Errors/Updates').get();
var expensesDoc = await firebase.firestore().doc(`NewExpenses/${dateToday}`).get()
预期输出
所有 Get 查询都应始终有效。
实际输出
获取查询仅在不经常调用时才有效。 (我知道这很奇怪)
【问题讨论】:
-
你的意思是在第二个例子中使用反引号吗?
-
@Robert Harvey,是的,我必须使用波浪号(反引号),因为我必须在字符串中使用变量
标签: firebase react-native google-cloud-firestore react-native-firebase