【问题标题】:What should be my query to get a list of nodes in firebase我应该查询什么来获取firebase中的节点列表
【发布时间】:2023-03-14 15:25:01
【问题描述】:

如果我想获取所有性别 = 0 和 userType = 1 的记录的列表,我的查询应该是什么?我对 firebase 很陌生,我找不到任何可以教授复合查询的资源。

【问题讨论】:

标签: android firebase firebase-realtime-database


【解决方案1】:

首先创建一个节点名称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 子句。可以使用orderBy,startAt,endAt函数实现过滤。请参阅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);
  }

【讨论】:

  • 谢谢@nepster
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-09
  • 1970-01-01
  • 2013-01-27
相关资源
最近更新 更多