Quiero verificar si la persona que inició sesión con la cuenta de Google se registró antes o no para guardar en Firestore. ¿Hay alguna manera de comprobar?
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); };Está buscando el campo UserInfo.providerId del objeto User .
Algo como esto:
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); // 👈 }) // ... } }); Necesita el bucle, ya que un usuario puede iniciar sesión con varios proveedores al mismo tiempo. La cadena de proveedor de Google es google.com ( fuente ).