如何遍历firebase中的子记录?

Posted

技术标签:

【中文标题】如何遍历firebase中的子记录?【英文标题】:How to loop through child records in firebase? 【发布时间】:2018-10-06 22:16:20 【问题描述】:

我正在尝试弄清楚如何遍历 users 表中的 sent_request 子项并获取所有 user_keys。我尝试了很多方法,但都不起作用。

表结构:

这是我的代码:

getProfileData(emailID)

    var ref = firebase.database().ref('users');
    ref.orderByChild("email").equalTo(emailID).once("value", (items : any) => 
        let sent_request : any = [];

        items.forEach((item) => 

            sent_request = item.val().sent_request;

        );
        console.log(sent_request);
    );

console.log(sent_request) 输出:

如何从这些记录中获取 user_key?因为我想将这些每个 user_key 传递给另一个方法并根据该 user_key 获取记录。 请帮忙。 提前致谢。

【问题讨论】:

代码乍一看还不错。什么不起作用?它有没有得到你的回调?控制台是否有任何相关错误? @FrankvanPuffelen 没有错误。我的问题是如何获取 users 表中 sent_request 子项中的每个 user_key? 【参考方案1】:

我想你可能正在寻找这个:

ref.orderByChild("email").equalTo(emailID).once("value", (usersSnapshot : any) => 
    let sent_request : any = [];

    usersSnapshot.forEach((userSnapshot) => 

        userSnapshot.child("send_request").forEach((requestSnapshot) => 
            sent_request.push(requestSnapshot.key);
            // OR: sent_request.push(requestSnapshot.child("user"key").val());

        

    );
    console.log(sent_request);
);

【讨论】:

以上是关于如何遍历firebase中的子记录?的主要内容,如果未能解决你的问题,请参考以下文章