我试图通过将OTP发送到电话号码来登录用户,但是我得到了一个错误:
auth.RecaptchaVerifier不是一个函数
有人能告诉我怎么解决这个问题吗?
这是我的代码,这是配置文件夹中的fire.js文件
import firebase from 'firebase'
var firebaseConfig = {
apiKey: "",
authDomain: "prokeyy-455bb.firebaseapp.com",
databaseURL: "https://prokeyy-455bb.firebaseio.com",
projectId: "prokeyy-455bb",
storageBucket: "prokeyy-455bb.appspot.com",
messagingSenderId: "602194520114",
appId: "",
measurementId: "G-BLY242QNJ3"
};
firebase.initializeApp(firebaseConfig);
export default firebase这是我的otp代码
import firebase from "../config/firebase";
phoneverification(){
window.recaptchaVerifier= new firebase.auth.RecaptchaVerifier('recaptcha-container')
let number='+91234567'
var appVerifier = window.recaptchaVerifier;
firebase.auth().signInWithPhoneNumber(number,appVerifier).then(function(e){
let code=prompt('enter opt');
if(code==null){return}
else e.confirm(code).then(function(result){
console.log(result.user,"user");
document.querySelector('label').textContent=result.user.phoneNumber+"number is verified"
}).catch(err=>{
console.log(err);
})
})
}
<button className="btn btn-primary btn-block" onClick={this.phoneverification}>Sign Up</button>有人能帮我解决这个错误吗?
发布于 2020-08-03 15:36:19
从fire文件导出config时,这是一个对象
const fire=firebase.initializeApp(firebaseConfig);导出默认火
而且App对象没有auth属性。确实有一个auth()方法,但这不是定义RecaptchaVerifier的地方。
您需要正确地将firebase命名空间导入主JavaScript。您可以通过从您的config文件正确导出它来做到这一点:
export default firebase在这种情况下,您可能需要更改一些主要代码,以适应新的导出/导入。或者,您也可以在主文件中导入firebase命名空间:
import firebase from 'firebase'据我所见,这可以与您现有的导入并行使用。
在这两种情况下,您都需要引用auth名称空间及其RecaptchaVerifier,如文档中所示
new firebase.auth.RecaptchaVerifier('recaptcha-container');https://stackoverflow.com/questions/63230973
复制相似问题