我有一个 Firebase Web 应用程序,谷歌登录弹出窗口不起作用,它不会持续或给我一条消息(检查图片)是否有解决办法
//sign in with google
const googleProvider = new GoogleAuthProvider();
const signInWithGoogle = document.querySelector('#google-icon');
signInWithGoogle.addEventListener('click', (e) => {
e.preventDefault();
signInWithPopup(auth, googleProvider).then((result) => {
const user = result.user;
const credential = GoogleAuthProvider.credentialFromResult(result);
const accessToken = credential.accessToken;})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
const email = error.email;
const credential = GoogleAuthProvider.credentialFromError(error);
});
});
我有同样的错误,但我发现只需在signInWithPopup()函数中添加“browserPopupRedirectResolver”作为第三个参数即可解决它
您的代码应该是:
import { browserPopupRedirectResolver } from "firebase/auth";
//sign in with google
const googleProvider = new GoogleAuthProvider();
const signInWithGoogle = document.querySelector('#google-icon');
signInWithGoogle.addEventListener('click', (e) => {
e.preventDefault();
signInWithPopup(auth, googleProvider, browserPopupRedirectResolver).then((result) => {
const user = result.user;
const credential = GoogleAuthProvider.credentialFromResult(result);
const accessToken = credential.accessToken;})
.catch((error) => {
const errorCode = error.code;
const errorMessage = error.message;
const email = error.email;
const credential = GoogleAuthProvider.credentialFromError(error);
});
});
这对我有用,希望你也这么做
使用新版本的 Firebase,您必须将所有域添加到 Firebase Installations API。 前往谷歌云控制台。
谢谢!