我想显示一个元素列表,但这些元素嵌套在组中("播放列表"在示例中)。要显示的元素的数据改为另一个节点("电影"在示例中)。
我尝试了两种不同的方法,但没有工作:
(1)使用FirebaseRecyclerAdapter
在 FirebaseRecyclerAdapter 中,我只能传递一个数据库引用,在这种情况下,它将是 getReference(MoviePlayLists).child(User-Id-1),并且它没有'工作。
我尝试在这些节点上创建自定义模型类,并在适配器 parseSnapshot()中覆盖,但我无法在 populateView()中正确填充View,因为它是呼吁" MoviePlayLists"节点而不是子节点。
(2)使用FirebaseIndexRecyclerAdapter
因为键的引用再次嵌套,我无法使用它。
您对使用此DB结构执行此操作的正确方法有任何想法吗?有可能吗?
答案 0 :(得分:1)
我不确定这样做的正确方法,但这是我将如何实现它
Query keyref = FirebaseDatabase.getInstance().getReference().child("User-Id");
Query dref = FirebaseDatabase.getInstance().getReference().child("User-Id");
现在创建一个扩展FirebaseIndexRecyclerAdapter的类 并将其附加到recyclerView。
现在在populateViewHolder()方法中获取movie-id详细信息
populateViewHolder(final VIEW_HOLDER vh, final String movie_id, final int position){
FirebaseDatabase.getInstance().getReference().child(movie_id).addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Movie m = dataSnapshot.getValue(MODEL_CLASS_FOR_MOVIE_ID);
// update you movie details here
}
});
}
如果有人有更好的解决方案,请发表评论!