首页 > 解决方案 > Firebase 身份验证显示名称

问题描述

如何使用电子邮件、密码和显示名称制作 Firebase 登录系统?如果有人有不同的方法,请评论它是什么。

let user = FIRAuth.auth()?.currentUser
             let changeRequest = user.profileChangeRequest()
             changeRequest.displayName = document.getElementById("name")
            
             changeRequest.commitChangesWithCompletion()
               alert("changed")

这是我现在的代码(用于更改其显示名称),但我不断收到错误消息:“未定义 FIRAuth。”

标签: javascript

解决方案


从评论看来,您有 2 个问题 - 1 没有设置一些 FIRAuth 变量,然后没有在正确的时间捕获身份验证。

要解决问题 1,您始终可以使用根库:

let user = FIRAuth.auth()?.currentUser

let user = firebase.auth()?.currentUser

如果这是在它自己的功能中,例如单击或其他东西,则将所有内容包装在 if 检查中:

if(user){
     let changeRequest = user.profileChangeRequest()
     changeRequest.displayName = document.getElementById("name")

     changeRequest.commitChangesWithCompletion()
       alert("changed")
}

如果您需要在他们登录后立即启动,则使 auth 处理反动:

firebase.auth().onAuthStateChanged(function(user){
    if(user){
         let changeRequest = user.profileChangeRequest()
         changeRequest.displayName = document.getElementById("name")
        
         changeRequest.commitChangesWithCompletion()
           alert("changed")
    }
});

推荐阅读