从Firebase android获取儿童ID [英] Get child ID from Firebase android

查看:134
本文介绍了从Firebase android获取儿童ID的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我对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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆