如何在react js中使用firebase登录谷歌时检查是否注册用户



我想检查使用谷歌帐户登录的人是否已经注册或是否保存到Firestore。有办法查一下吗?

const ggProvider = new GoogleAuthProvider();
const handleGgLogin = async () => {
const { user } = await signInWithPopup(auth, ggProvider);
const collectionRef = collection(db, "Account");
const payload = {
displayName: user.displayName,
email: user.email,
photoUrl: user.photoURL,
uid: user.uid,
};
await addDoc(collectionRef, payload);
};

您正在查找User对象的UserInfo.providerId字段。

类似这样的东西:

onAuthStateChanged(auth, (user) => {
if (user) {
// User is signed in, see docs for a list of available properties
// https://firebase.google.com/docs/reference/js/firebase.User
const uid = user.uid;
// Show the provider(s) that the user is signed in with
user.providerData.forEach((userInfo) => { // 👈
console.log(userInfo.providerId);       // 👈
})
// ...
}
});

您需要循环,因为用户可以同时登录到多个提供程序。Google的提供程序字符串是google.com(源代码(。

最新更新