2017-02-28 40 views
2

是否可以指定由FirebaseListAdapter讀取哪些數據?FirebaseListAdapter - 查詢

目前,我只能讀完整的數據庫。數據庫包含很多不同的對象。該對象具有表示創建該對象的用戶的值。

現在,我只想從這個特殊用戶讀取對象。當我嘗試像這樣,有空列表字段。

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL"); 
    //HOW CAN I DO THE QUERY FOR THAT DATABASE REFERENCE? 
    FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
       this, 
       Machine.class, 
       R.layout.list_item, 
       databaseReference) { 
      @Override 
      protected void populateView(View v, final Machine model, int position) { 
       //CAN I DO THIS BY QUERY? 
       if(model.getS_UserID.equals(user.getID)){ 
        //SOME STUFF WHICH I DO 
       } 
     }; 
} 
     list.setAdapter(firebaseListAdapter); 

的問題是,我可以做的FirebaseListAdapter查詢做if語句?

目前,我做這樣的事情:

如果(model.getS_UserID.equals(user.getID()) - >做一些東西

但同時也產生了一些空。這是真正醜陋的領域 我的數據庫看起來是這樣的:

OBJECT

  • -userid = STRING
  • -NAME = ...
  • -.....

回答

2

您可以在Query傳遞給FirebaseListAdapter而不是你現在使用的數據庫的參考。使用用戶標識過濾項目:

DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReferenceFromUrl("URL"); 
Query query = databaseReference.orderByChild("s_UserId").equalTo(user.getID); 

FirebaseListAdapter<Machine> firebaseListAdapter = new FirebaseListAdapter<Machine>(
      this, 
      Machine.class, 
      R.layout.list_item, 
      query) { 

Firebase documentation on ordering and filtering data中瞭解更多。

+0

你好,弗蘭克你能給我舉個例子嗎?你是一個非常棒的程序員,我也在GitHub上關注。您有一個包含自己的適配器的項目。你能舉一個例子嗎? –