繁体   English   中英

如何从 Firebase 获取嵌套子级

[英]How to Get Nested Children From Firebase

我需要从 firebase 中获取嵌套的孩子(见图)。 我想展示一个仅来自特定用户的回收站视图。 以下是我到目前为止所拥有的,但这给了我所有的孩子。

DatabaseReference notificationInviteRef = FirebaseDatabase.getInstance().getReference().child(Strings.InvitesReference);
notificationInviteRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot1) {
        ArrayList<Model_Notifications_Invite> model_notification_invites = new ArrayList<>();
        for (DataSnapshot snapshot2:snapshot1.getChildren()) {

            Model_Notifications_Invite invites = snapshot2.getValue(Model_Notifications_Invite.class);
                model_notifications_invites.add(invites);

        }
        myNotificationsAdapter.updateNotificationsList(model_notifications_invites);

    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        //throw databaseError.toException();
    }
});  

在此处输入图像描述

如果我理解正确,您的数据结构中有两个未知级别,这意味着您的onDataChange中需要两个嵌套循环:每个级别一个。

DatabaseReference notificationInviteRef = FirebaseDatabase.getInstance().getReference().child(Strings.InvitesReference);
notificationInviteRef.addValueEventListener(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot snapshot1) {
        ArrayList<Model_Notifications_Invite> model_notification_invites = new ArrayList<>();
        for (DataSnapshot snapshot2:snapshot1.getChildren()) {
            for (DataSnapshot snapshot3:snapshot2.getChildren()) {
                Model_Notifications_Invite invites = snapshot3.getValue(Model_Notifications_Invite.class);
                model_notifications_invites.add(invites);
            }
        }
        myNotificationsAdapter.updateNotificationsList(model_notifications_invites);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        throw databaseError.toException(); // 👈 never ignore errors
    }
});

暂无
暂无

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

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