Firebase 电话身份验证和链接

2023-12-09

我正在尝试将我的电话号码与我的电子邮件密码身份验证链接起来。所以我使用以下步骤构建我的注册:

  1. 用户输入电子邮件地址和密码。
  2. 然后我打电话firebase.auth().createUserWithEmailAndPassword(values.email, values.password)
  3. 然后我需要将当前帐户与电话号码关联起来,以便我使用firebase.auth().currentUser.linkWithPhoneNumber("+xxxxxxxxxx", xxx)

但是,我没有看到任何链接。在我的 Firebase 控制台中创建的 2 个帐户和当前用户的详细信息中仅包含电话号码。当我再次使用电子邮件和密码登录并检查用户详细信息时,电话号码不存在!

请在下面找到我的代码:

onSubmit(values) {
    this.props.firebase.auth().createUserWithEmailAndPassword(values.email, values.password).then((user) => {
        //send recaptchaverifier
        window.recaptchaVerifier.verify();

    }).catch((error) => {
        console.log(error);
    });
}


window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier('submit-button', {
        'size': 'invisible',
        'callback': function(response){
         //called when we call "window.recaptchaverifier.verify() in 
         //onSubmit function
            var xxx = window.recaptchaVerifier;

            this.props.firebase.auth().currentUser.linkWithPhoneNumber("+xxxxxxxx", xxx)
                .then((verificationId) => {
                    console.log('inside');
                    console.log(resp);
                    var verificationCode = window.prompt('Please enter the verification ' +
                        'code that was sent to your mobile device.');
                    return firebase.auth.PhoneAuthProvider.credential(resp.verificationId,
                        verificationCode);
                }).then((phoneCredential) => {
                console.log("RESULT OF AUTH", phoneCredential);
                console.log("USER INFO: ", this.props.firebase.auth().currentUser);
                return this.props.firebase.auth().signInWithCredential(phoneCredential)
            }).catch((error) => {
                console.log("ERRORS: ", error);
            }).catch((error) => {
                console.log("ERROR", error)
            });
        }.bind(this)
    });

你正在呼唤signInWithCredential使用创建新用户的电话凭据。您需要执行以下操作:

firebase.auth().currentUser.linkWithPhoneNumber("+xxxxxxxx", xxx)
  .then((confirmationResult) => {
    // At this point SMS is sent. Ask user for code.
    let code = window.prompt('Please enter the 6 digit code');
    return confirmationResult.confirm(code);
  })
  .then((result) {
    // Phone credential now linked to current user.
    // User now can sign in with email/pass or phone.
  });
  .catch((error) => {
    // Error occurred.
  });
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Firebase 电话身份验证和链接 的相关文章

随机推荐

  • PHP 刷新所有级别的输出缓冲

    我正在尝试实现一个简单的 Http Response 类 该类实现 Http Streaming 或 Chunked Encoding 为了做到这一点 我需要设置output buffering Off在 php ini 中 并以一定的时间
  • 即使以管理员身份运行,在 Windows 上运行 Spark 也会出现错误 5(访问被拒绝)

    我从 Spark 开始 所以不太确定我的问题出在哪里 并在这里寻找有用的提示 我正在尝试以管理员身份在 Windows 7 计算机上运行 Spark pyspark 但它似乎不起作用 我仍然收到 WindowsError 5 见下图 我已经
  • 在语义 URL 中使用“/”作为分隔符是否始终需要绝对路径

    我们对 mod rewrite 和语义 URL 很陌生 尽管研究了 Google 和 SO 但我们仍无法找到这个问题的明确答案 当我们在 htaccess 中使用正斜杠作为分隔符时 html 中所有的图像 css 和 js 引用都必须从相对
  • 如何获取数组中VB.net(VS08)项目中的所有表单?

    好吧 所以我需要一个方法来遍历 Visual Studio 2008 下的 VB net 项目内的所有表单 并创建一个表单类型的数组 并引用其中的所有表单 以便该数组看起来像这样 伪代码 FormsArray Form1 Form2 For
  • 类外的成员函数定义

    是否可以在类声明之外定义函数或方法 例如 class A int foo A foo 10 int A bar return foo 可以在类外部定义但不声明方法 类似于在 C 中创建函数原型然后稍后定义它们的方式 即 class A in
  • 如何解决 org.xmlpull.v1.XmlPullParserException: 意外类型 (position:END_DOCUMENT null@1:1 in java.io.InputStreamReader@40d310f0)

    我使用 jax ws 创建了简单的 Web 服务 我需要在android中使用该网络服务 当我使用该网络服务时 我收到此错误org xmlpull v1 XmlPullParserException unexpected type posi
  • 从C程序执行php脚本并将结果存储到变量中

    我想从 C 程序执行 PHP 脚本并将返回内容存储到 C 变量中 我尝试了以下操作 但它不起作用 C printf calling php function n execl usr bin php q var www html phpinf
  • 为什么使用正则表达式解析 XML 是一个坏主意? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心以获得指导 我刚刚回顾了我之前发表的一
  • QML:如何拒绝放置操作

    我有一个DropArea和两个元素 我想DropArea拒绝丢弃事件 如果DropArea已经有一个元素被删除 另一个元素不允许删除 除非第一个元素移出 DropArea property bool dropped false onDrop
  • C++ Qt:从线程重定向 cout 以发出信号

    在单个线程中 我有这个漂亮的类 它将所有 cout 输出重定向到 QTextEdit include
  • Cuda 从设备内存创建 3d 纹理和 cudaArray(3d)

    我正在尝试从设备阵列的一部分创建纹理 3D 为此 我的步骤如下 malloc 设备数组 写入设备数组 创建 CudaArray 3D 将纹理绑定到 CudaArray 我这样做的方式不会产生编译器错误 但是当我运行 cuda memchec
  • SQLite 相当于 ISNULL()、NVL()、IFNULL() 或 COALESCE()

    我想避免在我的代码中进行许多如下检查 myObj someStringField rdr IsDBNull someOrdinal string Empty rdr GetString someOrdinal 我想我可以让我的查询通过执行以
  • Javascript的replace()函数[重复]

    这个问题在这里已经有答案了 这是一个简单的 Replace 问题 我无法让它替换下面函数中的子字符串 function linkOnClick var anyNameYouLike some sort of text string righ
  • 验证 Web Api 服务中的 Azure 移动服务令牌

    我正在尝试在使用 Web Api 服务的跨平台移动应用程序上实现身份验证和识别 我的计划是将身份验证导出到联合云服务 例如新的 Azure 移动服务 客户端移动应用程序将使用移动服务身份验证流程 获取令牌 然后将其在请求标头内发送到 Web
  • 从图像中读取透明像素

    有没有办法使用javascript从图片中读取透明像素 我认为 这可能类似于 PNG 修复对 IE 所做的事情 读取透明像素并应用一些东西 哈哈 但是 是的 对于每个浏览器 啊 如果不用 HTML5 也能实现那就太棒了 这个问题实际上是由来
  • 如何在 QGraphicsView 中启用平移和缩放

    我正在使用 python 和 Qt Designer 来实现加载 tiff 图像并在某些鼠标事件上启用平移和缩放 滚轮 缩放 按滚轮 平移 我正在研究一些可以处理图像等的选项和类 到目前为止我发现 QGraphicsScene QImage
  • 我们怎么知道应用程序不能是 Monad?

    从验证的例子 https hackage haskell org package Validation 我试图直观地检测应用程序如何 为什么不能是 Monad 为什么 AccValidation 不能有 Monad 实例 你能挑战我的推理吗
  • 扩展 sys_file_reference (FAL)

    我想用自己的字段扩展 sys file reference 所以我创建了该字段和 TCA 在后端 该字段可用 但我无法引用流体模板中的该字段 ext tables php CREATE TABLE sys file reference no
  • 如何在jsp中迭代多个属性

    我正在尝试迭代属性文件中的一组键 以便仅输出 message pX a property foo message p1 a message p2 b message p3 c some other property bar 我不知道文件中将
  • Firebase 电话身份验证和链接

    我正在尝试将我的电话号码与我的电子邮件密码身份验证链接起来 所以我使用以下步骤构建我的注册 用户输入电子邮件地址和密码 然后我打电话firebase auth createUserWithEmailAndPassword values em