我有用户数据库,在那里每个用户都有一个随机的id。每个用户都有我想要获取其值的数据。有时我只想要一个特定的用户,有时我想要所有用户的数据。数据库如下所示:
database
|
|__users
|____uid1
|_____dataKey1: value1
|_____dataKey2: value2
|_____dataKey3: value3如果我只需要dataKey1的value1,怎么获取?目前,我的代码返回所有uid1子元素的映射:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref= rootRef.child("users").child("uid1");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for(DataSnapshot ds : dataSnapshot.getChildren()) {
value= ds.getValue().toString();
Log.d("TAG", values);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
imageNamesRef.addListenerForSingleValueEvent(eventListener);在日志中,我得到:
TAG: value1
TAG: value2
TAG: value3但我想:
TAG: value1我在哪里过滤出我想要的密钥?
发布于 2018-12-19 04:05:26
尝试以下操作:
DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
DatabaseReference ref= rootRef.child("users").child("uid1");
ValueEventListener eventListener = new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
String value = dataSnapshot.child("dataKey1").getValue().toString();
Log.d("TAG", value);
}
@Override
public void onCancelled(DatabaseError databaseError) {}
};
imageNamesRef.addListenerForSingleValueEvent(eventListener);您可以访问子uid1,因此,要获取dataKey1的值,您不需要循环。
https://stackoverflow.com/questions/53840199
复制相似问题