2017-07-24 34 views
0

firebase state的Android - 火力得到所有父對象FirebaseRecyclerAdapter

繼我希望檢索用戶裏面有我的getuid()設置爲true的所有項目和FirebaseRecyclerAdapter使用的圖像。

我使用的是FirebaseRecyclerAdapter

我這個嘗試,但它不工作

Query postsQuery = mDatabase.child("projects").child("users").orderByChild(getUid()).equalTo(true); 
    mAdapter = new FirebaseRecyclerAdapter<Project, ProjectViewHolder>(Project.class, R.layout.item_project, 
      ProjectViewHolder.class, postsQuery) { 
     @Override 
     protected void populateViewHolder(final ProjectViewHolder viewHolder, final Project model, final int position) { 
      final DatabaseReference postRef = getRef(position); 
      Log.d(TAG, model.name + ""); 
      viewHolder.bindToPost(model); 

     } 
    }; 
    mRecycler.setAdapter(mAdapter); 

我認爲這個問題是我需要的父對象(項目),而不是用戶。

回答

0

你需要去更高的一個步驟,這三個使用getParent()方法是這樣的:

final DatabaseReference postRef = getRef(position).getParent(); 
String name = postRef.child("name").getValue(String.class); 

希望它能幫助。

+0

謝謝!!我已經解決了 'DatabaseReference keyRef = mDatabase.child(「users」)。child(getUid())。child(「projects」); DatabaseReference dataRef = mDatabase.child(「projects」); mAdapter =新FirebaseIndexRecyclerAdapter <項目,ProjectViewHolder>(Project.class,R.layout.item_project,ProjectViewHolder.class,keyRef,dataRef){ @Override 公共無效populateViewHolder(ProjectViewHolder viewHolder,Project項,INT位置){ Log.d(TAG,item.name +「」); } }; mRecycler.setAdapter(mAdapter);' – AndreaC

0

您需要使用FirebaseIndexRecyclerAdapter

在這種情況下,你的鑰匙引用將是你設置哪些項目被鏈接到用戶的另一個節點。

"user_projects": { 
    "UID": { 
     "project_1":true, 
     "project_4":true, 
    } 
}