如何通过用户电子邮件获取 userID Firebase android?

新手上路,请多包涵

给定一个电子邮件地址,是否可以获取一个人的用户 ID?例如,

如果我有一个可变电子邮件,其中包含该人的电子邮件。我可以通过做类似的事情来获得他们的身份证吗

String userID = mAuth.DatabaseReference.getuID.(email);

对不起,如果这是一个愚蠢的问题。

编辑:请注意,我正在寻找不是当前用户的人的 ID。所以我不能使用 FirebaseUser user = mAuth.getCurrentUser();

我的数据库结构如下所示,所以 ID 已经存储在数据库中。我只需要一种获取它的方法(在下面的图表中,我没有电子邮件字段,但我会添加一个,以防有人想知道 -_-)。

另外,如果可能的话,我想根据他们的电子邮件或在我获得 ID 后通过 ID 获取他们的个人资料图片。

在此处输入图像描述

原文由 SumOne 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 286
1 个回答

如果您想在受信任的服务器上通过电子邮件查找用户,您可以使用 Firebase Admin SDK。从 有关检索用户数据的文档中

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

用于 Firebase 身份验证的客户端 SDK 仅提供对当前经过身份验证的用户的个人资料的访问。他们不提供通过电子邮件地址查找用户的方法。为了允许客户端查找,常用的方法是将 UID-by-email-address 存储在数据库中:

 "emailToUid": {
    "SumOne@domain,com": "uidOfSumOne",
    "puf@firebaseui,com": "uidOfPuf"
}

使用这个简单的列表,您可以通过编码的电子邮件地址从以下位置查找 UID:

 ref.child("emailToUid").child("SumOne@domain,com").addSingleValueEventListener(...

也可以看看:

原文由 Frank van Puffelen 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题