esta es mi función de registro
createUserWithEmailAndPassword(auth, email, password) .then((userCredential) => { const uid = userCredential.user.uid; const data = { id: uid, email, fullName, }; async function storeUserUid() { const newUser = doc(collection(db, "users", user.uid)); await setDoc(newUser, data); console.log(uid) = aj3x5gAe2jUcngBoTY5cVpOTITu1 console.log(data) = Object { "email": "lala@email.com", "fullName": "lala", "id": "aj3x5gAe2jUcngBoTY5cVpOTITu1", }Mi función de inicio de sesión que necesita ayuda. Al autenticarlo con éxito, he registrado en la consola el (uid), que es el primer marcado en la pantalla que se muestra a continuación. Recibo el mismo uid de la segunda consola.log (lista de usuarios) bajo la clave "id". ¿Cómo puedo acceder al objeto y comparar ambos valores para permitir que el usuario navegue a la "Pantalla de inicio" si hay una coincidencia entre signInwithCredentials y la ID de la lista de usuarios? De alguna manera necesito mapear todos los documentos dentro de la colección de "usuarios" y comparar sus claves de "id" y si hay una coincidencia con signInwithCredentials uid => entonces, deje entrar al usuario. MUCHAS GRACIAS
const onLoginPress = () => { signInWithEmailAndPassword(auth, email, password) .then((userCredential) => { const uid = userCredential.user.uid; console.log(uid); async function getUser() { const q = query(collection(db, "users")); const userSnap = await getDocs(q); const userList = userSnap.docs.map((doc) => doc.data()); console.log(userList); } getUser(); })Si no necesita obtener todos los documentos de usuario, sino solo el del usuario actual, sería:
async function getUser() { const ref = doc(db, "users", FirebaseAuth.instance.currentUser.uid)); const userDoc = await getDoc(ref); return userDoc.data(); } getUser();