2016-11-09 64 views
0

Data Structure什麼應該是我的查詢來獲取節點的火力

名單應該是什麼我的查詢,如果我想獲得的所有記錄其性別= 0和用戶等級和積分= 1的名單?我對firebase很陌生,找不到任何教授複合一些查詢的來源。

+0

使用addListenerForSingleValueEvent像http://stackoverflow.com/a/36611301/3496570 – Nepster

+0

但你應該更好地創建用戶類的數組與鍵0,1,2等。並閱讀用戶列表 – Nepster

+0

所以你試圖暗示的是,我會得到用戶的列表,然後逐個過濾它編程 – jnapor

回答

2

首先是創建一個節點名userListscreen shot中添加問題的用戶instances與鍵0,1,2,3等等等等。它成爲一個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()); 
     } 
    }); 

而且你還可以使用火力地堡RecyclerAdapterlike 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); 
    } 
+1

謝謝@nepster – jnapor