0
我的firebase结构如下所示:
这些组使用由firebase生成的键,0和1仅仅是示例。
在这些组中有更多的数据,比如“groupname”。获取Firebase的链接数据
我该如何检索链接到用户的所有组的组名?
我在Android上。
由Alex解决。
我的firebase结构如下所示:
这些组使用由firebase生成的键,0和1仅仅是示例。
在这些组中有更多的数据,比如“groupname”。获取Firebase的链接数据
我该如何检索链接到用户的所有组的组名?
我在Android上。
由Alex解决。
假设groups
节点是你的火力地堡根和内单个组的直接孩子,有一个名为groupName
键,请使用如下代码:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference groupsRef = rootRef.child("groups");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String name = ds.child("name").getValue(String.class);
Log.d("TAG", name);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
groupsRef.addListenerForSingleValueEvent(eventListener);
如果您需要能够得到的只是你的用户链接到组的组名,你需要这样的查询两次:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference userGroupsRef = rootRef.child("users").child(userKey).child("groups");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
String groupKey = ds.getKey();
DatabaseReference groupKeyRef = rootRef.child("groups").child(groupKey);
ValueEventListener valueEventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String name = dataSnapshot.child("name").getValue(String.class);
Log.d("TAG", name);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
groupKeyRef.addListenerForSingleValueEvent(valueEventListener);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
userGroupsRef.addListenerForSingleValueEvent(eventListener);
在这userKey
是您希望得到的组ID的用户的关键。
这不是返回所有*组名而不是特定用户组的组名吗? –
这的确能让我获得我所有小组的所有组名。但我希望能够只获取我的用户链接到的组的组名。 – DeGoosseZ
@alexkucksdorf不,它不。它返回我所有组的组名。 –