具有嵌套元素的FirebaseRecyclerAdapter

时间:2017-03-06 17:44:16

标签: android firebase firebase-realtime-database recycler-adapter firebaseui

问题

enter image description here

我想显示一个元素列表,但这些元素嵌套在组中("播放列表"在示例中)。要显示的元素的数据改为另一个节点("电影"在示例中)。

我尝试了两种不同的方法,但没有工作:

(1)使用FirebaseRecyclerAdapter

FirebaseRecyclerAdapter 中,我只能传递一个数据库引用,在这种情况下,它将是 getReference(MoviePlayLists).child(User-Id-1),并且它没有'工作。

我尝试在这些节点上创建自定义模型类,并在适配器 parseSnapshot()中覆盖,但我无法在 populateView()中正确填充View,因为它是呼吁" MoviePlayLists"节点而不是子节点。

(2)使用FirebaseIndexRecyclerAdapter

因为键的引用再次嵌套,我无法使用它。

您对使用此DB结构执行此操作的正确方法有任何想法吗?有可能吗?

1 个答案:

答案 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

        }
    });
}

如果有人有更好的解决方案,请发表评论!