Firebase Android:仅从当前用户的朋友中检索帖子

时间:2017-02-12 23:47:48

标签: android firebase firebase-realtime-database

我使用FirebaseRecyclerAdapter来显示帖子。但我不想显示所有帖子。我只想展示当前用户的朋友发布的帖子。 当前用户在实时数据库中的朋友以这种方式存储:

enter image description here

并且每个帖子都与发布它的用户的uid一起存储,方式如下:

enter image description here

那么,从当前用户的朋友那里检索帖子的有效方法是什么呢。

2 个答案:

答案 0 :(得分:1)

此问题的解决方案是使用FirebaseIndexRecyclerAdapter而不是FirebaseRecyclerAdapter。 链接:https://github.com/firebase/FirebaseUI-Android/blob/master/database/README.md#using-firebaseui-with-indexed-data

一步一步:

<强>第一 - &GT;维护节点中每个用户的帖子,让我们说“我的挑战”#34;: enter image description here

因此,每当用户发布任何内容时,也要在此节点内的用户uid下复制该帖子ID。

<强>第二 - &GT;为你可以看到的帖子维护另一个节点(在我的情况下,我只想看到我的朋友帖子)让我们说&#34; timelineIndex&#34;: enter image description here

假设用户1(1014382358695053)和用户2(10207254337991322)是朋友。因此,将用户1的 My_Challenges 的所有帖子ID复制到用户2的 timelineIndex ,反之亦然。 (注意:每次在你的uid上将新的帖子ID复制到你的朋友uid timelineIndex 时,你必须这样做)

<强>最后 - &GT;使用FirebaseIndexRecyclerAdapter: 如上面给出的链接,使用

keyRef = databaseReference.child(&#34; timelineIndex&#34;)。child(mUserId);

dataRef = databaseReference.child(&#34; Blogs&#34;);

那就是它。我希望它有所帮助。

答案 1 :(得分:0)

为防止人们看到帖子,您应该使用身份验证的某种方法。这样,唯一可以看到帖子的人就是登录的人。 如前一个问题中所述,不直接支持Firebase一对一消息传递:

How to send one to one message using Firebase Messaging