我当前无法实例化新的 RecaptchaVerifier。我正在连接到 Firebase 模拟器套件的 Vite 开发服务器上运行父登录页面。 package.json 中当前的 firebase 版本是 10.8.0。
// firebaseModular.js
const mainConfig = {
apiKey: import.meta.env.VITE_API_KEY,
authDomain: import.meta.env.VITE_AUTH_DOMAIN,
projectId: import.meta.env.VITE_PROJECT_ID,
storageBucket: import.meta.env.VITE_STORAGE_BUCKET,
messagingSenderId: import.meta.env.VITE_MESSAGING_SENDER_ID,
appId: import.meta.env.VITE_APP_ID,
measurementId: import.meta.env.VITE_MEASUREMENT_ID,
};
export const firebaseApp = initializeApp(mainConfig, "modular");
export const auth = getAuth(firebaseApp);
getAuth(firebaseApp).settings.appVerificationDisabledForTesting = true;
// auth.settings.appVerificationDisabledForTesting = true;
//SignInForm.js
import { auth } from "../../constants/firebaseModular";
import { signInWithEmailAndPassword, RecaptchaVerifier } from "firebase/auth";
const SignInForm = () => {
...
console.log("auth settings in SignInForm", auth.settings);
const recaptchaVerifier = new RecaptchaVerifier(
"recaptcha-container",
auth
补充说明:
Uncaught FirebaseError: Firebase: Error (auth/argument-error).
{appVerificationDisabledForTesting: true}
。更新 尝试@Rainy sidewalks解决方案从firebaseModular.js中删除所有相关代码并更新SignInForm.jsx,如下所示:
import { auth, firebaseApp } from "../../constants/firebaseModular";
import { getAuth } from "firebase/auth";
const SignInForm = () => {
...
console.log("auth settings in SignInForm before", auth.settings);
getAuth(firebaseApp).settings.appVerificationDisabledForTesting = true;
console.log("auth settings in SignInForm after", auth.settings);
const recaptchaVerifier = new RecaptchaVerifier(
"recaptcha-container",
getAuth(firebaseApp)
);
如果您查看phone-auth#integration-testing 在这里您看到您应该直接通过 getAuth 函数传递 firebase auth 实例的设置。
所以试试这个
import { auth, getAuth } from "../../constants/firebaseModular";
import { signInWithEmailAndPassword, RecaptchaVerifier } from "firebase/auth";
const SignInForm = () => {
//sign flow as
console.log("auth settings in SignInForm", getAuth().settings);
getAuth().settings.appVerificationDisabledForTesting = true; //<-- set it here
const recaptchaVerifier = new RecaptchaVerifier(
"recaptcha-container",
getAuth()
);
};