如何从firebase数据库中获取经过身份验证的用户?

时间:2016-11-17 13:43:09

标签: android authentication firebase firebase-authentication

我正在创建应用,我将使用Firebase消息服务。消息传递工作正常,但现在我希望在两个用户之间实现。

我认为我需要为每个用户提供身份验证,然后通过他们的社交网络连接或邮件ID搜索他们的连接(他们的朋友)。

我设法使用Auth.GOOGLE_SIGN_IN_API和AppInvite.API在我的应用中创建了Google+身份验证,但是连接到firebase中的其他用户没有任何线索,然后我浏览了这些链接Udacity tutorialCodelabs tutorial Firebase guides。 (这些教程解释了同样的事情,每个人使用电子邮件提供商进行身份验证,而不是通过Google+登录。事实上,当我最初尝试通过这些程序登录Google+时,它没有用,但电子邮件提供商正在工作。)< / p>

无论如何,电子邮件提供商对我来说现在也不错,但仍然不知道如何连接Firebase的两个用户。我连接了两个用户,它显示在我的Firebase身份验证控制台中,但如何将两个用户一对一连接?

任何线索??

1 个答案:

答案 0 :(得分:1)

要在社交网络中的两个用户之间建立连接,通常其中一个用户必须输入关于另一个用户的一些“秘密”详细信息。最常见的是你必须输入你朋友的电子邮件地址,然后系统会告诉你它有一个与该电子邮件地址匹配的记录。

您可以在Firebase上实施此类系统,方法是列出一系列电子邮件地址及其对应的uid:

userLookup
  "ari@stackoverflow,com": "uidOfAri"
  "puf@stackoverflow.com": "uidOfPuf"

现在,当我输入您的电子邮件地址时,我可以找到您的UID(从而与您联系)。

为确保上述安全,您只能授予特定用户的读取权限:

{
  "rules": {
    "userLookup": {
      "$user": {
        ".read": true
      }
    }
  }
}

使用此结构,您可以读取每个特定用户,但无法搜索用户列表。因此,如果我知道您的完整电子邮件地址,我只能找到您的uid(并因此连接)。