【问题标题】:Firebase Android: Retrieve post from current user's friends onlyFirebase Android:仅从当前用户的朋友那里检索帖子
【发布时间】:2017-02-12 23:47:47
【问题描述】:

我正在使用 FirebaseRecyclerAdapter 来显示帖子。但我不想显示所有帖子。我只想显示当前用户的朋友发布的帖子。 当前用户在实时数据库中的好友是这样存储的:

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

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

【问题讨论】:

    标签: android firebase firebase-realtime-database


    【解决方案1】:

    此问题的解决方案是使用 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("博客");

    就是这样。希望对你有帮助。

    【讨论】:

      【解决方案2】:

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

      How to send one to one message using Firebase Messaging

      【讨论】:

      • 每个用户只有经过认证才能使用应用程序。我怎样才能限制他们只看到朋友的帖子。
      • 我说的是除了 Gmail 登录之外的其他身份验证,例如服务器专用的用户名和密码。
      • 我认为你没有得到我。我说的是facebook,如果我的任何朋友发布了一些东西,它应该出现在我的时间线上。事实上,它应该出现在每个朋友的时间线上。并说如果你发布了一些东西而你不是我的朋友,我不会在我的时间轴上看到你的帖子。就像脸书一样。
      • 是的,我的意思是,这不是 firebase 的原生功能,因此您需要设置自己的身份验证来考虑不同的用户。
      猜你喜欢
      • 2013-11-21
      • 1970-01-01
      • 1970-01-01
      • 2014-02-03
      • 2018-08-16
      • 1970-01-01
      • 2021-12-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多