我在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
还是有其他方法可以在不停止枚举的情况下使回调工作?谢谢!