2016-11-29 91 views
-2

我在Firebase中使用电子邮件/密码身份验证。所以每个用户都有一个电子邮件地址我的用户分组,我希望每个用户都能看到组中的所有其他用户。具体来说,我想在前端向用户显示一个电子邮件列表。我的问题不是关于如何为此制定规则,而是,如何获得用户ID为的用户的电子邮件地址?请注意,我询问的是获取其他用户的列表,而不是当前登录的用户。如何通过ID获取Firebase用户的电子邮件地址

我还没有找到任何SO答案,显示如何通过auth()获取另一个用户的电子邮件地址。我已经看到了建议将电子邮件放在/users集合下的用户ID下,但对于我来说,在auth()/users/$userId中存储电子邮件地址似乎令人难以置信。更改电子邮件地址将是一场噩梦。所以必须有办法从auth()得到电子邮件,对吧?

谢谢!

+0

这个问题没有理由应该是downvoted。如果问题出现问题,请在此留言,以便我编辑它以向Google员工提供更多价值。 –

+0

对不起凯尔。没有公开的API可以从Firebase身份验证中获取用户列表。如果您想要添加该功能,请在[这里](https://firebase.google.com/support/contact/bugs-features/)中打开铃声。除此之外,我不明白这个问题与这些问题有何不同:http://stackoverflow.com/search?q=%5Bfirebase-authentication%5D+list+of+users,所有这些都将指向存储用户在单独的数据库中。脆弱或不脆弱,这是目前唯一已知的方式(这是由很多开发人员使用)。 –

+0

谢谢弗兰克,这正是我想知道的。尽管这是一个可怕的解决方案,但它比回答不同的问题要好。如果您更新了该解决方案,以便让未来的Google员工不会感到困惑,我会将您的答案标记为解决方案。谢谢弗兰克。 –

回答

0

如果您想要检索特定用户的电子邮件地址,则可以使用新的Firebase Admin SDK。

admin.auth().getUser(uid) 
    .then(function(userRecord) { 
    // See the tables below for the contents of userRecord 
    console.log("Successfully fetched user data:", userRecord.toJSON()); 
    }) 
    .catch(function(error) { 
    console.log("Error fetching user data:", error); 
    }) 

请参阅the documentation on retrieving user data

顾名思义,Admin SDK以高级授权运行,因此只能在受信任的硬件上运行,例如,您控制的应用程序服务器。

正如我评论:没有API来获取用户列表。

+0

Admin SDK无法在客户端运行(在Angular中),所以这不能回答我的问题。我需要知道用户如何获得电子邮件列表。无论是通过SDK还是将其存储在'/ users'集合中。我只需要某种解决方案。 –

+0

我也明确表示,我不想回答你给的,因为这对我来说并没有帮助。 –

相关问题