Firebase数据库查询未显示在屏幕上

时间:2018-07-26 05:39:07

标签: java android firebase firebase-realtime-database

我有一堂课,我在其中显示用户拥有的朋友列表。但是,当我尝试运行此命令时,RecylerView不会向当前用户显示他们所拥有的朋友。

朋友片段

{{1}}

我也对此进行了调试,并在数据库中显示用户是朋友,但该应用程序未显示朋友列表。我尝试删除.child(mCurrent_user_id)并显示了朋友,但它是针对每个用户的朋友,而不仅仅是当前用户。我不确定为什么会这样...

数据库

DB

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

我认为问题出在仅使用addValueEventListener。如果数据发生更改,该侦听器将仅更新RecyclerView。因此,您的朋友没有显示,因为它只是在等待数据更改,因此不会检索任何数据。首次将适配器设置为RecyclerView时,需要使用addListenerForSingleValueEvent从数据库中获取当前的朋友列表。使用该列表创建RecyclerView适配器。然后在onBindViewHolder()中保留addValueEventListener,当您的朋友数据发生更改时,该列表应会相应地更新您的列表项(尽管我认为这太过分了;无需在您的朋友项中添加侦听器来检查数据是否发生了更改除非这是您应用程序中的关键功能。只要用户返回到该活动/片段,您就可以刷新列表。

编辑: 您可以在onCreate()onCreateView()中设置侦听器,具体取决于初始化所需变量的位置。收到响应并获得好友列表后,即可将其设置为recyclerview适配器。设置适配器后,将其设置为recyclerview。它应该显示您的朋友列表。

答案 1 :(得分:0)

嗯,花了一周左右的时间,但我终于弄清楚了RecyclerView出了什么问题。这不是代码问题,而是XML布局。我的应用程序中有选项卡,在主要活动中,您向左/向右滑动可查看“朋友”,“聊天”或“请求”。我意识到我的标签页已设置为match_parent。因此,我改为更改大小,然后WA-LA可以看到朋友列表!