2016-12-27 87 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有任何增加時纔會工作嗎? –