Javascript 验证用户是否是firebase中电子邮件地址的所有者

Javascript 验证用户是否是firebase中电子邮件地址的所有者,javascript,reactjs,firebase,firebase-authentication,Javascript,Reactjs,Firebase,Firebase Authentication,我正在尝试使用firebase进行用户身份验证 对于基于电子邮件和密码的身份验证,我想检查用户在表单中输入的电子邮件是否真的属于用户,我可以通过向用户发送验证链接来做到这一点 因此,在提交表单并完成所有其他验证后,我尝试了以下代码: firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password) .then(()=>{ var actionCod

我正在尝试使用firebase进行用户身份验证

对于基于电子邮件和密码的身份验证,我想检查用户在表单中输入的电子邮件是否真的属于用户,我可以通过向用户发送验证链接来做到这一点

因此,在提交表单并完成所有其他验证后,我尝试了以下代码:

firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
        .then(()=>{
            var actionCodesettings={
                url: 'https://localhost:3000/?email=' + firebase.auth().currentUser.email,
                handleCodeInApp: false
            }
            firebase.auth.currentUser.sendEmailVerification(actionCodesettings)
             .then(()=>{
               console.log("Email Sent")
             })
             .catch((error)=>{
                 console.log("Unexpected error occured")
             })

        })
        .catch((error)=>{
            var errorCode = error.code;
            if(errorCode === 'auth/email-already-in-use'){
                this.setState({
                    Message:"Email already Used"
                })
                return;
            }
            else if(errorCode === 'auth/invalid-email'){
                this.setState({
                    Message:"Email already Used"
                })
            return;
            }
            else if(errorCode === 'auth/weak-password'){
                this.setState({
                    Message:"Password is too Weak"
                })
            return;
            }
        })
    }

但是我没有收到任何电子邮件,邮件“email Sent”也没有注销。

您收到一个语法错误,因为您使用了
firebase.auth.currentUser
而不是
firebase.auth().currentUser

您没有看到此错误的原因是,您没有处理预期之外的错误代码,从而忽略了此错误。识别这些类型错误的一个好方法是使用
switch
语句和
default
回退案例

firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
。然后((结果)=>{
var actionCodesettings={
网址:'https://localhost:3000/?email=“+result.user.email,
handleCodeInApp:false
}
返回result.user
.sendEmailVerification(actionCodesettings);
})
.然后(()=>{
这是我的国家({
信息:“请检查您的电子邮件以进行验证。”
});
})
.catch((错误)=>{
const errorCode=error.code;
开关(错误代码){
案例“身份验证/电子邮件已在使用中”:
这是我的国家({
消息:“此电子邮件已被使用”
});
返回;
案例“验证/无效电子邮件”:
这是我的国家({
消息:“电子邮件无效”
});
返回;
案例“身份验证/弱密码”:
这是我的国家({
消息:“请使用更安全的密码”
});
返回;
违约:
控制台错误(“登录和验证用户时出现意外代码”,错误);
这是我的国家({
消息:“意外错误。请与支持部门联系。”
});
返回;
}
});

您遇到语法错误,因为您使用了
firebase.auth.currentUser
而不是
firebase.auth().currentUser

您没有看到此错误的原因是,您没有处理预期之外的错误代码,从而忽略了此错误。识别这些类型错误的一个好方法是使用
switch
语句和
default
回退案例

firebase.auth().createUserWithEmailAndPassword(this.state.email,this.state.password)
。然后((结果)=>{
var actionCodesettings={
网址:'https://localhost:3000/?email=“+result.user.email,
handleCodeInApp:false
}
返回result.user
.sendEmailVerification(actionCodesettings);
})
.然后(()=>{
这是我的国家({
信息:“请检查您的电子邮件以进行验证。”
});
})
.catch((错误)=>{
const errorCode=error.code;
开关(错误代码){
案例“身份验证/电子邮件已在使用中”:
这是我的国家({
消息:“此电子邮件已被使用”
});
返回;
案例“验证/无效电子邮件”:
这是我的国家({
消息:“电子邮件无效”
});
返回;
案例“身份验证/弱密码”:
这是我的国家({
消息:“请使用更安全的密码”
});
返回;
违约:
控制台错误(“登录和验证用户时出现意外代码”,错误);
这是我的国家({
消息:“意外错误。请与支持部门联系。”
});
返回;
}
});