繁体   English   中英

如何在 Firebase 中为所有孩子使用条件

How to use a conditional for all childs in Firebase

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

下面的代码是我一直在尝试做的,但是dbRef.on("child_added...一次然后执行检查。谢谢。

let dbRef = firebase.database().ref("/ExamplePath");
let found = false;
dbRef.on("child_added", (child) => {
     if (child.val().test == testingVal) {
          console.log("Found One!");
          found = true;
     }
});

if (found) {
     console.log("Finished!");
}else{
     console.log("Nope!");
}
1 个回复

为每个孩子调用child_added处理程序,并且无法在其中知道这是否是最后一个孩子。 为此,您需要收听value事件。

所以一种选择是:

let dbRef = firebase.database().ref("/ExamplePath");
let found = false;
dbRef.on("child_added", (child) => {
     if (child.val().test == testingVal) {
          console.log("Found One!");
          found = true;
     }
});

dbRef.on("value", (snapshot) => {
    if (found) {
         console.log("Finished!");
    }else{
         console.log("Nope!");
    }
});

这很好用,Firebase 确保数据只下载一次,尽管它被传递给两个侦听器。


如果你愿意,你也可以只使用一个value监听器来做同样的事情:

let dbRef = firebase.database().ref("/ExamplePath");

dbRef.on("value", (snapshot) => {
    let found = false;
    snapshot.forEach((child) => {
         if (child.val().test == testingVal) {
              console.log("Found One!");
              found = true;
         }
    });

    if (found) {
         console.log("Finished!");
    }else{
         console.log("Nope!");
    }
});

两种方法的结果和效率是相同的,因此您应该选择对您的应用程序最方便的方法。 例如,当我负责直接更新 UI 中的每个元素时,我更喜欢听child_事件,因为child_*事件非常直接地告诉我该做什么。

1 Android Firebase如何在孩子中使用空格字符

我是Firebase实时数据库的新手,我必须在数据库中保存一些特殊字符,如下所示: 注意:孩子可以包含任何特殊字符,而不仅仅是$ 请问我该如何处理这样的问题? 如我所见,有些人正在替换字符,但是在我的情况下,我不应该更改值,因为我必须按原样显示给用户,因为它对用户有意义。 ...

5 如何将所有子项及其值添加到ListView(Firebase数据库)

我正在写这篇文章,因为我被困住了,我是Firebase的新手,我不知道从这里去哪里。 我已经尝试过stackoverflow的多种解决方案,但是没有任何效果。 这是我的代码: 我的数据库如下所示: 我的数据库所有这些都在起作用,但是我不知道如何显示所有游戏细节,而不仅仅 ...

9 如何在Firebase听很多孩子?

所以这是我的Firebase结构如下: 每个用户都有自己的帖子,假设有2个用户。 用户A和B. 如果A与B有关系,那么两者都可以看到彼此的帖子并听取更新。 A听B帖时情况很简单,但A可能与B,C,D等其他用户有关系 。 我检查了其他线程像这个和这个 ,但没有我的问题明确简单的 ...

暂无
暂无

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

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