我对Android开发很新,我正在使用Firebase开发一个Android应用程序来获取一个人的名字和地址。我的数据库如下所示:
Users
id: user1
id: user2
id: user3
Adresses
id: adress1
id: adress2
id: adress3
我想得到' id'从用户获得相应的地址,但我似乎无法实现它。有什么想法吗?
答案 0 :(得分:3)
获取所有这样的用户ID: -
List<String> userIdList = new ArrayList();
DatabaseReference databaseRef = FirebaseDatabase.getInstance().getReference();
databaseRef.child("User").addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot==null)return;
for (DataSnapshot postSnapshot: dataSnapshot.getChildren()) {
userIdList.add(postSnapShot.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Error
}
};
获取与任何userId相对应的地址
databaseRef.child("Adresses").orderByKey().equalTo(userIdList.get(0)).addValueEventListener(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
if(dataSnapshot==null || dataSnapshot.getChildren()==null || !dataSnapshot.getChildren().iterator().hasNext()){
String address = dataSnapshot.getValue(String.class);
}
}
@Override
public void onCancelled(DatabaseError databaseError) {
// Error
}
};