我的查询应该是什么来获取firebase中的节点列表

时间:2016-11-09 03:24:36

标签: android firebase firebase-realtime-database

Data Structure

如果我想获得gender = 0和userType = 1的所有记录的列表,我的查询应该是什么?我对firebase很新,我找不到教授复合某些查询的任何来源。

1 个答案:

答案 0 :(得分:2)

  

首先创建一个节点名称userList,然后添加用户instances和密钥0,1,2,3等等,就像问题中的screen shot一样。它变成array of userList

List<User> userList = new ArrayList<>();
Firebase ref = new Firebase(FIREBASE_URL);

  ref.addValueEventListener(new ValueEventListener() {
      @Override
      public void onDataChange(DataSnapshot snapshot) {
          for (DataSnapshot postSnapshot: snapshot.getChildren()) {
            <User> user = postSnapshot.getValue(<User>.class);
            userList .add(user);
          }
      }
      @Override
      public void onCancelled(FirebaseError firebaseError) {
          Log.e("The read failed: " ,firebaseError.getMessage());
      }
  });

您还可以使用 Firebase RecyclerAdapter like this

Firebase 无SQL 。它没有where子句。您可以使用orderBystartAtendAt功能来实现过滤。请参阅thisthis

在服务器上过滤最多,在客户端上完成其余工作

 orderBy('gender')
  .startAt('0').endAt('0')

和onDataChange

  for (DataSnapshot postSnapshot: snapshot.getChildren()) 
  {
       <User> user = postSnapshot.getValue(<User>.class);
       if(user.getUserType == 1) 
           userList .add(user);
  }