【发布时间】:2017-02-12 23:47:47
【问题描述】:
我正在使用 FirebaseRecyclerAdapter 来显示帖子。但我不想显示所有帖子。我只想显示当前用户的朋友发布的帖子。 当前用户在实时数据库中的好友是这样存储的:
并且每个帖子都与发布它的用户的 uid 一起存储,方式如下:
那么,什么是仅从当前用户的朋友那里检索帖子的有效方法。
【问题讨论】:
标签: android firebase firebase-realtime-database
我正在使用 FirebaseRecyclerAdapter 来显示帖子。但我不想显示所有帖子。我只想显示当前用户的朋友发布的帖子。 当前用户在实时数据库中的好友是这样存储的:
并且每个帖子都与发布它的用户的 uid 一起存储,方式如下:
那么,什么是仅从当前用户的朋友那里检索帖子的有效方法。
【问题讨论】:
标签: android firebase firebase-realtime-database
此问题的解决方案是使用 FirebaseIndexRecyclerAdapter 而不是 FirebaseRecyclerAdapter。 链接:https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md#using-firebaseui-with-indexed-data
一步一步:
首先->维护节点中每个用户的帖子,比如说“My_Challenges”:
因此,每当用户发布任何内容时,也要将该帖子 ID 复制到此节点内的用户 uid 下。
第二->为您可以看到的帖子维护另一个节点(在我的情况下,我只想看到我朋友的帖子)让我们说“timelineIndex”:
假设用户 1(1014382358695053) 和用户 2(10207254337991322) 是朋友。因此,将用户 1 的 My_Challenges 中的所有帖子 ID 复制到用户 2 的 timelineIndex 中,反之亦然。 (注意:每次新的帖子 id 出现在您的 uid 下时,您都必须这样做,将其复制到 timelineIndex 下的朋友 uid)
最后->使用 FirebaseIndexRecyclerAdapter : 如上面给出的链接,使用
keyRef = databaseReference.child("timelineIndex").child(mUserId);
dataRef = databaseReference.child("博客");
就是这样。希望对你有帮助。
【讨论】:
为了防止人们看到帖子,您应该使用某种身份验证方法。这样,唯一可以看到帖子的人是登录的人。 如上一个问题所述,不直接支持 Firebase 一对一消息传递:
【讨论】: