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

问题描述:

我正在使用FirebaseRecyclerAdapter显示帖子。但我不想显示所有帖子。我只想显示当前用户朋友发布的帖子。在实时数据库 当前用户的朋友被存储在这样:Firebase Android:仅从当前用户的朋友检索帖子

enter image description here

和每一个岗位存储与用户的UID谁贴吧,在下列方式:

enter image description here

所以,只有当前用户的朋友检索帖子的有效方式是什么?

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

分步:

首先 - >维持在一个节点的每个用户的岗位让说 “My_Challenges”: enter image description here

所以每当用户发布任何东西,复制在该节点内的用户uid下发布id。

- >维护帖子,你可以看到(以我来说,我只想看到我的朋友们的帖子),另一个节点让说:“timelineIndex”: enter image description here

让我们说用户1(1014382358695053)和用户2(10207254337991322)是朋友。因此,请将用户1的My_Challenges的所有帖子ID复制到用户2的时间轴索引,反之亦然。 (注意:你必须在你的uid将它复制到你的朋友下的uid timelineIndex这个新职位ID来每次做)

最后 - >使用FirebaseIndexRecyclerAdapter: 正如上面给出的链接,使用

keyRef = databaseReference.child(“timelineIndex”)。child(mUserId);

dataRef = databaseReference.child(“Blogs”);

就是这样。我希望它有帮助。

为了防止人们看到帖子,您应该使用一些方法身份验证。通过这种方式,可以看到帖子的人,就被记录在谁的人 火力地堡一对一的消息在此之前的问题表示不直接支持:

How to send one to one message using Firebase Messaging

+0

只有认证后,才允许每个用户使用应用。我如何限制他们看不到朋友的帖子。 –

+0

我在谈论除Gmail登录以外的其他身份验证,例如服务器专用的用户名和密码。 – JordanH

+0

我认为你没有得到我。我在谈论Facebook,如果我的朋友发布了一些内容,它应该会出现在我的时间表上。事实上,它应该符合其朋友的每一个时间表。并说,如果你发布了一些东西,而你不是我的朋友,我不会在你的时间线上发布你的帖子。这就像Facebook一样。 –