从Firebase android获取儿童ID [英] Get child ID from Firebase android
问题描述
我对android开发很陌生,我正在开发一个带有Firebase的android应用程序来获取一个人的姓名和地址。我的数据库如下所示:
用户
id:user1
id:user2
id :user3
地址
id:adress1
id:adress2
id:adress3
我想从用户那里得到'id'来获得相应的地址,但是我似乎无法实现它。任何想法?
获取所有userids像这样: - $ / $>
列表与LT;字符串> userIdList = new ArrayList();
DatabaseReference databaseRef = FirebaseDatabase.getInstance()。getReference();
databaseRef.child(User)。addValueEventListener(new ValueEventListener(){
@Override $ b $ public void onDataChange(DataSnapshot dataSnapshot){$ b $ if(dataSnapshot == null)return ;
for(DataSnapshot postSnapshot:dataSnapshot.getChildren()){
userIdList.add(postSnapShot.getKey());
}
}
@Override
public void onCancelled(DatabaseError databaseError){
// Error
}
};
$ b $ p获取与userId对应的地址
$ b $ pre $ database $ c $ databaseRef.child(Adresses) (DataSnapshot){
if(dataSnapshot == null).orderByKey()。equalTo(userIdList.get(0))。addValueEventListener(new ValueEventListener(){
@Override
public void onDataChange(DataSnapshot dataSnapshot) || dataSnapshot.getChildren()== null ||!dataSnapshot.getChildren()。iterator()。hasNext()){
String address = dataSnapshot.getValue(String.class);
}
}
@Overri de
public void onCancelled(DatabaseError databaseError){
// Error
}
};
I'm quite new to android development and I'm developing an android app with Firebase to get a person's name and adress. My database looks like this:
Users
id: user1
id: user2
id: user3
Adresses
id: adress1
id: adress2
id: adress3
I want to get 'id' from a user to get the corresponding adress, but I cannot seem to achieve it. Any ideas?
Fetch all the userids like this :-
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
}
};
Get the address corresponding to any 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
}
};
这篇关于从Firebase android获取儿童ID的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!