我正在使用Firebase执行“ Google登录身份验证” ...,但登录弹出窗口未显示任何可用的google用户,并且弹出窗口在大约5秒钟后消失,并且不执行任何操作
firebase.js中的代码:
import firebase from "firebase/app";
import "firebase/firestore";
import "firebase/auth";
var firebaseConfig = {
apiKey: "AIzaSyDSxAzARyErU6gr7ujsEfg2hB6DYz02OnA",
authDomain: "crwn-db-3c771.firebaseapp.com",
databaseURL: "https://crwn-db-3c771.firebaseio.com",
projectId: "crwn-db-3c771",
storageBucket: "",
messagingSenderId: "395022734699",
appId: "1:395022734699:web:39122ca48383548f"
};
// Initialize Firebase
firebase.initializeApp(firebaseConfig);
export const auth = firebase.auth();
export const firestore = firebase.firestore();
const provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({ prompt: "select_account" });
export const signInWithGoogle = () => auth.signInWithPopup(provider);
export default firebase;
sign-in.jsx中的代码:
import { signInWithGoogle } from "../../firebase/firebase.utils";
class SignIn extends React.Component {
render() {
return (
<CustomButton onClick={signInWithGoogle}>
Sign in with Google
</CustomButton>
</div>
);
}
}
export default SignIn;
signInWithGoogle弹出窗口应显示可用的Google帐户,我从中选择一个,然后继续,然后将该用户注册为Firebase身份验证用户。 但是弹出窗口没有显示任何可用的Google帐户(我的浏览器中有两个登录帐户),并且弹出窗口在大约5秒钟后自动消失。
答案 0 :(得分:0)
您是否尝试启用提供程序?对于您的示例,您必须进入firebase中的项目,转到“身份验证”标签,然后单击“登录方法”并检查是否启用了Google。
答案 1 :(得分:0)
对于用户实际上是使用也已登录Chrome的Google帐户自动登录的情况,这听起来很正常。添加一个身份验证状态侦听器,并添加一些日志以检查用户在该点是否实际登录。
答案 2 :(得分:0)
我遇到了同样的问题,我重新启动了Mac,它运行正常。如果该错误仍然存在,请尝试以下操作:
代替此
export const signInWithGoogle = () => auth.signInWithPopup(provider);
使用此:
export const signInWithGoogle = () => auth.signInWithRedirect(provider);
答案 3 :(得分:0)
我也面临着同样的问题。我在Chrome上启用了第三方Cookie,并且可以正常工作,所以请尝试一下。
答案 4 :(得分:0)
如果您希望 Firebase signInWithGoogle
在使用当前身份验证令牌之前停止并询问要登录哪个 google 帐户,您将需要使用 setCustomerParameters
方法并像这样手动调用提示.. .
var provider = new firebase.auth.GoogleAuthProvider();
provider.setCustomParameters({
prompt: "select_account"
});
//works for signInWithPopup and signInWithRedirect
const signInWithPopup = () => auth.signInWithPopup(provider);
const signInWithRedirect = () => auth.signInWithRedirect(provider);
链接到 setCustomerParameters
documentation