我在 React 应用程序中使用 firebase,但遇到了一些问题。
我正在从我的收藏中查询 N 个项目。但在这个特定的查询中,我对 Firebase 的实时方面不感兴趣,因为我将数据加载到组件的状态中,并且事件监听器使状态不断刷新并更改页面内容(我不这样做)不想)。
那么,有没有一种方法可以像使用 MongoDb 或任何其他非实时数据库那样进行“静态”查询?
还有一种方法可以立即从集合中检索所有元素,而无需监听更改?我现在正在使用它,如下所示:
postsRef.startAt().orderByChild('likes')
.on(
'child_added',
(snapshot) => {
this.setState({
media: [...this.state.media, snapshot.val()],
});
},
);
但这远非理想,因为我要一一获取它们,并且我更愿意获取包含所有它们的单个数组或对象。
谢谢!
最佳答案
如果您想一次性获取所有项目,请使用 on('value'
或 once('value'
)。这将为您提供所有匹配子项的快照一次性节点。然后使用 Snapshot.forEach() 循环遍历结果:
postsRef.startAt().orderByChild('likes')
.on(
'value',
(snapshot) => {
snapshot.forEach((child) => {
this.setState({
media: [...this.state.media, child.val()],
});
});
},
);
关于javascript - Firebase 单次调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47719178/