繁体   English   中英

如何通过动态 Firebase 实时数据库 go?

[英]How to go through dynamic Firebase Realtime Database?

我正在制作一个访问 Firebase 实时数据库的 web 应用程序。 随着新数据的输入,数据库将具有动态大小。

例子:

数据库截图

每个元素都包含一个不相关的 object。

我已经对大小进行了硬编码,并且正在循环遍历它(js):

for (let i = 0; i < DB_SIZE; i++) {
        let ref = firebase.database().ref(i.toString());
        let snapshot = await ref.once('value');
        let data = snapshot.val();
    }

获得的data是与元素关联的 object。

当我知道数据库的确切、不变的大小时,这很有效,但是当一个新的 object 作为新元素添加到数据库中时,我的循环不会访问它,因为数据库现在更大了。

如何使用 Firebase 的语法访问此动态数据库中的数据? 可能会涉及try...catch ,但我不太确定。

Firebase DataSnapshot有一个内置的forEach方法正是为此目的。 所以你可以加载整个父节点,然后在客户端循环它:

const snapshot = await firebase.database().ref().once('value');
snapshot.forEach((child) => {
    let data = child.val();
});

顺便说一句,Firebase 建议不要使用顺序数字索引作为键。 有关原因的解释,请参阅最佳实践:Firebase 中的 Arrays

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM