如何在将OTP发送给用户之前知道电话号码是否已与Firebase Web中的密码帐户关联

时间:2019-07-08 08:19:35

标签: firebase web firebase-authentication

我正在使用Firebase身份验证创建离子应用程序。我提供了“ facebook登录”和“密码验证”功能。当用户尝试通过以上两个功能登录时,我希望他们将其电话号码与他们的Facebook或密码身份验证帐户相关联。我已经实现了将电话号码与他们的帐户关联的功能。

我的要求是:我想检查他们尝试链接的电话号码是否已经被Firebase用户中的其他用户链接。如果没有,我不允许他们链接,否则我不会。另外,我希望在将OTP发送给用户之前得到此结果。

this.confirmationResult = this.auth.userCredential.user。 linkWithPhoneNumber(this.phoneNumber,this.appVerifier);

如果电话号码已经与其他帐户关联,我希望上面的代码应该返回错误。 但是,它允许将OTP发送到用户的电话号码,然后提示我提供发送到该电话号码的代码。 另外,我可以像这样验证OTP之后接收错误代码 “已在使用身份验证/凭据”。在将代码发送到用户的电话号码之前,我需要此代码。请帮助我实现这种情况。

1 个答案:

答案 0 :(得分:0)

您可以使用Firebase Admin SDK来lookup是否已经存在具有电话号码的用户。

这是Node.js的示例

admin.auth().getUserByPhoneNumber(phoneNumber)
  .then(function(userRecord) {
    // A user with the phone number already exists.
    // You can also get other information related to the user from the
    // userRecord.
  })
  .catch(function(error) {
    console.log('Error fetching user data:', error);
  });