2017-02-26 17 views
0

我想问如何检索只有user2加入Android的组?如何使用连接从Firebase数据库检索数据如果密钥只返回true?

"users": { 
    "user1": { 
     "name": "User 1" 
    }, 
    "user2": { 
     "name": "User 2" 
    } 
} 

"groups": { 
    "groupA": { 
     "name": "A Group" 
    }, 
    "groupB": { 
     "name": "B Group" 
    } 
} 

"userGroup": { 
    "user1": { 
     "groupA": true, 
     "groupB": true 
    }, 
    "user2": { 
     "groupB": true 
    } 
} 

我已经尝试 DatabaseReference userGroupRef = rootRef.child("userGroup/user2") 但不能显示组

的名字,但如果我用 DatabaseReference groupsRef = rootRef.child("groups") 的组user2不加入也显示。

Firebase是否有类似groupsID in userGroup/user2的查询?

Edit_1

我用FirebaseRecyclerAdapter显示来自rootRef.child("groups"),显示即使用户2没有加入所有组的列表。

groupsRef = rootRef.child("groups"); 

FirebaseRecyclerAdapter adapter = new FirebaseRecyclerAdapter<Group, GroupHolder>(Group.class, R.layout.group_item_layout, GroupHolder.class, groupsRef) { 
    @Override 
    protected void populateViewHolder(GroupHolder viewHolder, Group group, int position) { 
     viewHolder.setGroupName(group.getName()); 
    } 
}; 
groupRecyclerView.setAdapter(adapter); 
+0

告诉你如何找回我用'FirebaseRecyclerView'像上面的更新说明值 –

+0

的代码。 –

回答

0

该用例特别由FirebaseIndexRecyclerAdapter解决。您传入两个引用/查询:一个用于所谓的索引(您要显示的值为true的键),另一个用于要为每个匹配键加载的实际对象。

你的情况:

groupsRef = rootRef.child("groups"); 
indexRef = rootRef.child("userGroup/user2"); 

FirebaseIndexRecyclerAdapter adapter = new FirebaseIndexRecyclerAdapter <Group, GroupHolder> 
    (Group.class, R.layout.group_item_layout, GroupHolder.class, indexRef, groupsRef) { 
    @Override 
    protected void populateViewHolder(GroupHolder viewHolder, Group group, int position) { 
     viewHolder.setGroupName(group.getName()); 
    } 
}; 
相关问题