给定一个电子邮件地址,是否可以获得一个人的用户ID?例如,
如果我有一封可变电子邮件,其中包含该人的电子邮件.我可以通过做类似的事情来获取他们的ID
String userID = mAuth.DatabaseReference.getuID.(email);
对不起,如果这是一个愚蠢的问题.
编辑:注意,我希望获得不是当前用户的人的ID.所以我不能用FirebaseUser user = mAuth.getCurrentUser();
我的数据库结构如下所示,因此ID已经存储在数据库中.我只需要一种方法来获取它(在下面的图表中我没有电子邮件领域,但我会添加一个,因为任何人都想知道-_-).
此外,如果可能的话,我想根据他们的电子邮件或我通过ID获得ID后获取他们的个人资料图片.
如果要通过受信任服务器上的电子邮件查找用户,可以使用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(...
也可以看看:
Firebase身份验证服务 - 无需登录即可从电子邮件中查找uid
在Firebase用户表上添加额外详细信息
如何从firebase数据库中获取经过身份验证的用户?