2016-12-27 92 views
0

我对android开发非常陌生,我正在开发一个带有Firebase的android应用程序来获取一个人的姓名和地址。我的数据库看起来是这样的:从Firebase获取儿童ID android

Users 
     id: user1 
     id: user2 
     id: user3 

    Adresses 
     id: adress1 
     id: adress2 
     id: adress3 

我想从用户获得“身份证”,以获得相应的ADRESS,但我似乎无法实现它。有任何想法吗?

+0

你尝试过什么迄今为止地址?我们可以看到你的代码吗?没有一些代码很难理解你在做什么...... – Th0rndike

回答

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

获取对应于任何用户id

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 
} 
}; 
+0

只有当db有任何增加时才会工作吗? –