从Firebase android获取子ID

时间:2016-12-27 16:42:26

标签: android firebase firebase-realtime-database parent-child

我对Android开发很新,我正在使用Firebase开发一个Android应用程序来获取一个人的名字和地址。我的数据库如下所示:

    Users
       id: user1
       id: user2
       id: user3

    Adresses
       id: adress1
       id: adress2
       id: adress3

我想得到' id'从用户获得相应的地址,但我似乎无法实现它。有什么想法吗?

1 个答案:

答案 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
 }
};