将电话号码与Web上的Firebase中的Facebook和Gmail帐户链接

Ram*_*ary 2 javascript facebook login firebase firebase-authentication

我正在使用Firebase服务在React中创建一个Web应用程序。我在登录屏幕上有Google和Facebook登录名,登录后用户可以选择链接其手机。我为此使用Firebase 电话验证。用户已经签名,然后使用电话进行身份验证。我想将Phone Auth用户对象与facebook / google帐户关联。

通过文档,我找不到适合我的用例的解决方案。帮助将不胜感激。

boj*_*eil 5

这是一个简化的示例,说明如何使用不可见的reCAPTCHA将电话号码链接到Google / Facebook用户。

// Sign in the Google user first.
firebase.auth().signInWithPopup(new firebase.auth.GoogleAuthProvider())
  .then(function(result) {
    // Google user signed in. Check if phone number added.
    if (!result.user.phoneNumber) {
      // Ask user for phone number.
      var phoneNumber = window.prompt('Provide your phone number');
      // You also need to provide a button element signInButtonElement
      // which the user would click to complete sign-in.
      // Get recaptcha token. Let's use invisible recaptcha and hook to the button.
      var appVerifier = new firebase.auth.RecaptchaVerifier(
          signInButtonElement, {size: 'invisible'});
      // This will wait for the button to be clicked the reCAPTCHA resolved.
      return result.user.linkWithPhoneNumber(phoneNumber, appVerifier)
        .then(function(confirmationResult) {
          // Ask user to provide the SMS code.
          var code = window.prompt('Provide your SMS code');
          // Complete sign-in.
          return confirmationResult.confirm(code);
        })
    }
  })
  .catch(function(error) {
    // console.log(error);
  });
Run Code Online (Sandbox Code Playgroud)

  • 您能否提供您看到“linkWithPhoneNumber(phoneNumber, appVerifier)”的链接/参考。Firebase 文档的 Web 部分中没有对此进行记录 (2认同)
  • 当然,参考文献记录了它:https://firebase.google.com/docs/reference/js/firebase.User#linkWithPhoneNumber (2认同)