如何使用Android从Firebase迭代地检索数据?

时间:2018-07-05 05:29:04

标签: android firebase firebase-realtime-database

我实际上有2个问题:

  1. 如何从第一个用户到最后一个用户反复获取所有用户名的名称?

  2. 如何从一个ID检索所有兄弟节点的数据。假设我输入xyz,查询应该返回number:99, car1 ....等等。


User1{
  name: xyz
  number: 99...
  car1{ regno: 123
        make: ghj   }
  car2{.....}
 }
User2{..... }

1 个答案:

答案 0 :(得分:1)

  

Q1>如何从第一个用户到最后一个用户重复获取所有用户名的名称?

  DatabaseReference reference = FirebaseDatabase.getInstance().getReference("Users");

reference.addListenerForSingleValueEvent(new ValueEventListener() {
 @Override
public void onDataChange(DataSnapshot dataSnapshot) {
    for(DataSnapshot datas: dataSnapshot.getChildren()){
      String names=datas.child("name").getValue().toString();
     }
  }
 @Override
public void onCancelled(DatabaseError databaseError) {
     }
});

这里有Users处的快照,然后在每个用户内部进行迭代并检索名称,假设您具有以下数据库:

 Users
   user1
     name:xyz
   user2
     name: xziq

  

Q2>如何从一个ID检索所有同级节点中的数据(假设我输入xyz,查询应返回数字:99,car1 ....等)

DatabaseReference ref=FirebaseDatabase.getInstance().getReference().child("Users");
Query queries=ref.orderByChild("name").equalTo("xyz");
queries.addListenerForSingleValueEvent(new ValueEventListener() {...}

要检索兄弟节点,则需要使用类似orderByChild("name").equalTo("xyz")的查询,然后附加一个侦听器并检索其他节点。