使用Firebase foreach进行查询和遍历

时间:2016-10-04 03:59:26

标签: typescript firebase firebase-realtime-database ionic2

我在Ionic 2应用程序中有一个Firebase查询。这是用TypeScript编写的。我正在尝试根据特定的familyId逐个检索所有用户。

因为我无法为它执行SQL查询。我试图逐个检索并比较它。以下是我的代码。

var starCountRef = firebase.database().ref('users').orderByChild('familyId');
    console.log("firebase executed");
    //var query = firebase.database().ref("users");
    let familyList: Array<string>;

    starCountRef.on("value",(snapshot) => {
        //console.log('users', snapshot.val());
         var users = snapshot.val();
        console.log("users", users);

        snapshot.forEach((childSnapshot) => {
           var user = childSnapshot.val();
          // console.log("user", user);
          if(user.familyId == familyid){
                    console.log("entered", user);
                    //familyList.push(user.firstName);
                    this.userFamilyList.push(user);
            }
            return false; 
        });
    });

我正在尝试使用箭头函数,因为我对列表的引用在使用普通函数之前失败了。但是现在snapshot.forEach((childSnapshot)),它会根据Firebase documentation返回一个布尔值,以便提供一个停止计算的工具。

因此,如果我从代码中删除return false,它会给我一个编译错误:

[ts] Argument of type '(childSnapshot: DataSnapshot) => void' is not
assignable to parameter of type '(_0: DataSnapshot) => boolean'.  
Type 'void' is not assignable to type 'boolean'.

我该如何处理这种情况?是仅通过添加return false还是有其他方法可以在不停止枚举的情况下使回调工作?谢谢!

0 个答案:

没有答案