我有一个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 反应本机firebase:5.0.0
答案 0 :(得分:0)
Firebase一次返回一个Promise,因此您必须在使用值之后再使用。 代码应该像
firebase.database().ref('tableNameHere').once('value').then(snapshot => {
if(snapshot.exists()){
console.log(snapshot.val());
}
}).catch(err => console.log(err));
在使用on value时,该函数将在值的更改上调用,例如在CRUD操作上
firebase.database().ref('tableNameHere').on('value', snapshot => {
if(snapshot.exists()){
console.log(snapshot.val());
}
},(err) => console.log(err))