使用fetchSignInMethodsForEmail时Firebase获取uid

时间:2019-04-23 10:44:46

标签: javascript firebase firebase-authentication

我要在用户中搜索具有帐户的电子邮件地址,但我也想获取与该帐户相关联的用户的uid。这是我用来查看用户是否有帐户的代码。我还如何获取该用户的uid?

firebase.auth().fetchSignInMethodsForEmail('someemail@email.com')
.then(providers => {
  if (providers.length === 0) {
     console.log('not a user');

  } else {
    console.log('is a user');
  }
});

2 个答案:

答案 0 :(得分:1)

客户端sdk无法实现您要询问的内容,但是为了通过电子邮件检索用户ID,您可以做的是创建一个云功能,该功能使用功能getUserByEmail获取所需用户的电子邮件管理员sdk中可用,并将uid发送回客户端

答案 1 :(得分:1)

如果您使用的是Admin SDK。您可以调用auth.getUserByEmail以获得在getUserByEmail(email)中传递的特定用户的所有记录

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

请在此处查看详细文档https://firebase.google.com/docs/auth/admin/manage-users