【问题标题】:Get child ID from Firebase android [closed]从 Firebase android 获取子 ID [关闭]
【发布时间】:2016-12-28 01:49:18
【问题描述】:

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

    Users
       id: user1
       id: user2
       id: user3

    Adresses
       id: adress1
       id: adress2
       id: adress3

我想从用户那里获取“id”以获取相应的地址,但我似乎无法实现。有什么想法吗?

【问题讨论】:

  • 到目前为止您尝试过什么?我们可以看看你的代码吗?没有一些代码很难理解你在做什么......

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


【解决方案1】:

像这样获取所有用户标识:-

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

【讨论】:

  • 这不是只有在数据库中有任何添加时才有效吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-11
  • 1970-01-01
  • 2018-10-15
  • 2017-02-04
  • 1970-01-01
相关资源
最近更新 更多