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()) - > SOME STUFF

をDOしかし、それはまた、いくつかの空を作成します本当に醜いフィールド 私のデータベースは、次のようになります。

OBJECT

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

答えて

2

あなたはFirebaseListAdapterの代わりに、あなたが今使用してデータベース参照にQueryに渡すことができます。ユーザIDを持つアイテムにフィルタを適用するには:

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

こんにちはFrankは私にその例を教えてもらえますか?あなたは私がGitHubでフォローしている素晴らしいプログラマーです。独自のアダプタを含むプロジェクトがあります。これにも例を挙げてください。 –

関連する問題