Firebase如何链接使用phoneNumber创建的帐户

Som*_*ial 6 javascript firebase reactjs firebase-authentication

\xe2\x9c\x85 我可以让用户使用手机号码更新他们的个人资料verifyPhoneNumber并更新currentUser.updatePhoneNumber

\n

\xe2\x9d\x8c 当我允许通过电话登录和新用户时出现问题尝试使用电话号码登录时,我的问题出现了,会自动创建一个帐户。

\n

如果我需要将该号码与电子邮件帐户关联,则上述方法将返回credential-already-in-use错误。

\n

Firebase 在其文档中推荐以下方法

\n
var credential = firebase.auth.PhoneAuthProvider.credential(confirmationResult.verificationId, code);\n\nfirebase.auth().signInWithCredential(credential);\n
Run Code Online (Sandbox Code Playgroud)\n

所以我一起做了这个linkWithCredential,但是,signInWithCredential返回一个结果result.credential = null

\n
// Sign in user with the account you want to link to\nauth.signInWithCredential(credential).then(function(result) {\n  console.log("Sign In Success", result);\n  var currentUser = result.user;\n\n  return prevUser.linkWithCredential(result.credential) //this line doesn\'t work.\n    .then(function(linkResult) {\n\n      return auth.signInWithCredential(linkResult.credential);\n    })\n}).catch(function(error) {\n\n  console.log("Sign In Error", error);\n\n});\n
Run Code Online (Sandbox Code Playgroud)\n

由于 result.credential = null,我无法继续使用 LinkWithCredential。

\n

我也尝试过linkWithPhoneNumber,但它返回一个验证 ID,我仍然无法合并帐户。

\n

\xe2\x9d\x93请问你们是如何将电话号码帐户与其他帐户(Facebook/google/email)合并的?

\n

kun*_*uan 2

如果您想将现有帐户与电话号码关联,您可以使用linkWithPhoneNumber。基本上,您在用户登录后(比方说使用 Google),检索用户信息,然后将该凭据与电话号码链接起来。我在这里找到了与您的问题链接类似的详细答案