在我位于 componentWillMount
的 React Native Expo 应用程序中,我想获取 Firebase 数据库路径中的所有数据
componentWillMount() {
firebase.auth().onAuthStateChanged(user => {
if (user) {
this.setState({ isAuthenticated: true, uid: user.uid });
firebase.database().ref(`/users/${user.uid}/memories`)
.once("value").then(snapshot => {
console.log(snapshot.val());
console.log(snapshot);
/* a dispatch from redux rematch */
this.props.addMemory(snapshot.val());
});
} else {...}
});
}
但是console.log
显示仅返回第一个对象。
我调用的事件
名称是否正确?这是在应用程序启动时获取所有数据的正确方法吗?
最佳答案
您需要更改此设置:
.once("value").then(snapshot => {
对此:
.on("value").then(snapshot => {
<小时/>
一次
仅监听指定事件类型的一个事件,然后停止监听。
更多信息在这里:
https://firebase.google.com/docs/reference/js/firebase.database.Reference#once
关于javascript - Firebase 获取路径上的所有数据仅返回第一个对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49250812/