gpt4 book ai didi

reactjs - Firebase 电话认证 react js

转载 作者:行者123 更新时间:2023-12-04 01:54:12 27 4
gpt4 key购买 nike

我正在尝试在 react js 中实现 firebase 电话身份验证,而不使用 firebase UI。我该怎么做?

代码

requestVerificationCode = () => {
const { phoneNumber } = this.state;
const appVerifier = new firebase.auth.RecaptchaVerifier(
"recaptcha-container"
);
if (phoneNumber < 10) {
this.setState({ error: true });
} else {
this.setState({ message: "Sending code ..." });

firebase
.auth()
.signInWithPhoneNumber(phoneNumber, appVerifier)
.then(confirmResult =>
this.setState({ confirmResult, verifying: true })
)
.catch(error =>
this.setState({
message: `Sign In With Phone Number Error: ${error.message}`
})
);
}
};

错误


auth.esm.js:282未捕获的 K {code: "auth/argument-error", message: "reCAPTCHA container is either not found or already contains inner elements!"

最佳答案

重要的部分是等待Vue JS中的componentDidMount()mounted(),这样dom元素中包含"recaptcha-container" 已安装。

HTML

<input id="recaptcha-container" type="button" onClick="this.onClick" />

JS

componentDidMount () {
window.recaptchaVerifier = new firebase.auth.RecaptchaVerifier("recaptcha-container",
{
size:"invisible"
// other options
});
}

onClick() {
const phoneNumber = this.phone;
const appVerifier = window.recaptchaVerifier;
firebase
.auth()
.signInWithPhoneNumber(phoneNumber, appVerifier)
.then(confirmResult => {
// success
})
.catch(error => {
// error
});
}

如果您将用户重定向到 id="recaptcha-container" 所在的组件,那么 recaptcha 将正常工作但会在控制台中抛出与样式相关的错误,但那是因为它是想要在页面上有一个永久的位置。

关于reactjs - Firebase 电话认证 react js,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51512893/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com