【发布时间】:2018-11-04 20:53:32
【问题描述】:
我有一个 react native 应用程序并使用 firebase 数据库。
我尝试使用on 或once 函数从数据库中获取项目,但我不知道我做错了什么,因为我没有得到任何数据。
这是我从 firebase 数据库获取数据的代码:
firebase.database().ref("messages/").once('value', snapshot => {console.log("snapshot value", snapshot)});
我也用on而不是once尝试上面的命令,结果相同。 console.log 永远不会被调用。
当我添加消息时,一切正常,消息出现在 firebase 控制台中。为了添加消息,我这样做:
firebase.database().ref("messages/").push(message);
对于 firebase,我正在使用这个库:rnfirebase.io
这是使用的版本: 反应:16.6.0-alpha.8af6728 反应原生:0.57.4 反应原生火力基地:5.0.0
【问题讨论】:
-
您分享的代码看起来不错。您可能想添加第二个回调,以查看是否有错误:
firebase.database().ref("messages/").once('value', snapshot => {console.log("snapshot value", snapshot)}, error => { console.error(error); }) -
@FrankvanPuffelen 我现在添加了
error,但没有任何改变。控制台中没有显示错误。 -
代码对我来说也很好。您使用的是什么版本的 React Native、React Native Firebase 和原生 Firebase SDK?如果可能的话,您能否编辑并添加这些内容 - 谢谢
-
@Salakar 我现在已经在帖子中添加了版本。
-
@DanielDudas 太好了,谢谢!所以我想这里发生的是一个最近开始在 RN 56 和 57 中发生的错误,其中 RN 重新加载/实时重新加载会破坏侦听器/引用行为。好消息是已经有了修复;您能否从 NPM 安装 RNFB
v5.1.0-rc3,然后按照 v5.1.0 的升级说明(仍待发布):rnfirebase.io/docs/master/release-notes#5.1.0 并让我知道问题是否不再出现?谢谢
标签: firebase react-native firebase-realtime-database react-native-firebase