如何通过用户获取userID Email Firebase android?

Sum*_*One 9 android userid firebase firebase-authentication firebase-realtime-database

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

如果我有一封可变电子邮件,其中包含该人的电子邮件.我可以通过做类似的事情来获取他们的ID

String userID = mAuth.DatabaseReference.getuID.(email);
Run Code Online (Sandbox Code Playgroud)

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

编辑:注意,我希望获得不是当前用户的人的ID.所以我不能用FirebaseUser user = mAuth.getCurrentUser();

我的数据库结构如下所示,因此ID已经存储在数据库中.我只需要一种方法来获取它(在下面的图表中我没有电子邮件领域,但我会添加一个,因为任何人都想知道-_-).

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

在此输入图像描述

Fra*_*len 19

如果要通过受信任服务器上的电子邮件查找用户,可以使用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);
  });
Run Code Online (Sandbox Code Playgroud)

Firebase身份验证的客户端SDK仅提供对当前经过身份验证的用户的配置文件的访问.它们不提供通过电子邮件地址查找用户的方法.要允许客户端查找,执行此操作的常用方法是将UID-by-email-address存储在数据库中:

"emailToUid": {
    "SumOne@domain,com": "uidOfSumOne",
    "puf@firebaseui,com": "uidOfPuf"
}
Run Code Online (Sandbox Code Playgroud)

使用此简单列表,您可以通过编码的电子邮件地址查找UID:

ref.child("emailToUid").child("SumOne@domain,com").addSingleValueEventListener(...
Run Code Online (Sandbox Code Playgroud)

也可以看看: