Javascript &引用;firebaseApp.auth.RecaptchaVerifier不是构造函数;在Reactjs中使用firebase电话身份验证时出错

Javascript &引用;firebaseApp.auth.RecaptchaVerifier不是构造函数;在Reactjs中使用firebase电话身份验证时出错,javascript,reactjs,firebase,firebase-authentication,recaptcha,Javascript,Reactjs,Firebase,Firebase Authentication,Recaptcha,我从一个文件中导入“firebaseApp”,我在该文件中完成了firebase的所有设置,并实现了电子邮件、google和Facebook身份验证,但当我实现电话号码身份验证时,ReCaptcha不是构造函数,我使用的是ReactJs功能组件。 是否有任何方法可以在不使用ReCaptcha的情况下实现电话号码验证,或者如果没有,如何修复错误 firebase的设置 import firebase from 'firebase/app'; import 'firebase/aut

我从一个文件中导入“firebaseApp”,我在该文件中完成了firebase的所有设置,并实现了电子邮件、google和Facebook身份验证,但当我实现电话号码身份验证时,ReCaptcha不是构造函数,我使用的是ReactJs功能组件。 是否有任何方法可以在不使用ReCaptcha的情况下实现电话号码验证,或者如果没有,如何修复错误

firebase的设置

    import firebase from 'firebase/app';
    import 'firebase/auth'
    import 'firebase/firestore';

    // Web app's Firebase configuration
    var firebaseConfig = {
      apiKey: "",
      authDomain: "",
      databaseURL: "",
      projectId: "",
      storageBucket: "",
      messagingSenderId: "",
      appId: ""
    };

    // Initialize Firebase
    export const firebaseApp = firebase.initializeApp(firebaseConfig);
    export const auth = firebase.auth();
    export const db = firebase.firestore();
    export const google_provider = new firebase.auth.GoogleAuthProvider();
    export const facebook_provider = new firebase.auth.FacebookAuthProvider();
这是我将编号作为用户输入并发送OTP进行验证的地方,但示例代码编号是硬编码的

import { firebaseApp, auth } from '../../../firebase/firebasesetup'

 function Form() {
    const setuprecaptcha = () => {
    window.recaptchaVerifier = new firebaseApp.auth.RecaptchaVerifier('recaptcha-container',
        {
            'size': 'invisible',
            'callback': function (response) {
            console.log("captcha resolved");
               // sendsms();
            }
        });
     } 
  const sendsms = () => {
    setuprecaptcha();
    var phoneNumber = '+918220310506';
    var appVerifier = window.recaptchaVerifier;
    auth.signInWithPhoneNumber(phoneNumber, appVerifier)
        .then(function (confirmationResult) {
            
            window.confirmationResult = confirmationResult;
        }).catch(function (error) {
            alert("not sent")
        });

  }
  return (
      <input type="text" placeholder="Mobile" value={mob} 
        onChange={e => setMob(e.target.value)} />
      <div id="recaptcha-container"></div>
      <button onClick={sendsms} id='sign-in-button'>Send otp</button>
      )

 }

export default Form
从'../../../firebase/firebasesetup'导入{firebaseApp,auth}
函数形式(){
const setuprecaptcha=()=>{
window.recaptchaVerifier=新的firebaseApp.auth.recaptchaVerifier('recaptcha-container',
{
“大小”:“不可见”,
“回调”:函数(响应){
控制台日志(“验证码已解析”);
//sendsms();
}
});
} 
const sendsms=()=>{
setuprecaptcha();
var phoneNumber='+918220310506';
var-appVerifier=window.recaptchaVerifier;
使用phoneNumber进行身份验证登录(phoneNumber,appVerifier)
.然后(函数(确认结果){
window.confirmationResult=确认结果;
}).catch(函数(错误){
警报(“未发送”)
});
}
返回(
setMob(e.target.value)}/>
发送otp
)
}
导出默认表单

好的,我现在回答我自己的问题。这看起来有点奇怪,但如果你们中有人面临和我一样的问题

我需要在firebase_设置文件中解决2个问题,并在React functional component中添加主功能。(共3次更新)

firebase\u安装文件

首先
从“firebase”导入firebase而非
从“firebase/app”导入firebase

第二
firebase.initializeApp(firebaseConfig);export const firebaseApp=firebase

反应功能组件

从“/firebase_setup”导入{firebaseApp};
const sendsms=()=>{
//如果要使recaptcha不可见
var recaptcha=new firebaseApp.auth.RecaptchaVerifier('recaptcha-container'{
“大小”:“不可见”
});
//如果您想使recaptcha可见
var recaptcha=new firebaseApp.auth.RecaptchaVerifier('recaptcha-container');
//您的电话号码和国家代码
变量编号='+*********';
//实际代码从这里开始
auth.signInWithPhoneNumber(number,recaptcha)。然后(函数(e){
var code=提示(“输入发送到您手机号码的代码”);
if(code==null)返回;
e、 确认(代码)。然后确认(功能(结果){
警报(result.user+“已验证”)
}).catch(函数(错误){
警报('无法验证,请重试');
});
}).catch(函数(错误){
警报('请重试。我们无法联系到您的电话。请选择正确的代码和电话号码');
});
}