Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

128
Vistas
Acceda a la información del usuario de Firebase antes de crear un usuario

Estoy creando el lado de autenticación de una aplicación web usando el inicio de sesión de Google de Firebase y me gustaría ver si newUser.displayName es único en la base de datos de Firestore. Mi código actual no funciona porque debo crear el usuario antes de acceder al displayName. Si primero creo el usuario y luego verifico el displayName, eso causaría problemas, ya que tendría que volver atrás y eliminar el usuario si no se cumple la condición. ¿Hay alguna forma de acceder a displayName antes de que se cree el usuario?

Registro.js

 const handleGoogleSubmit = async (e) => { e.preventDefault(); setError(''); try { const available = await usernameAvailability(newUser.user.displayName.replace(/\s/g, "")) const newUser = await signInWithGoogle(email, password); const { isNewUser } = getAdditionalUserInfo(newUser) if (isNewUser) { await setDoc(doc(db, "users", newUser.user.uid), { email: newUser.user.email, uid: newUser.user.uid, username: newUser.user.displayName.replace(/\s/g, ""), usernameLowercase: newUser.user.displayName.toLowerCase(), }); } navigate('/account'); } catch (error) { setError(error.message); console.log(error.message); } }

AuthContext.js

 const usernameAvailability = async (username) => { const q = query(collection(db, "users"), where("usernameLowercase", "==", username.toLowerCase())); const querySnapshot = await getDocs(q) console.log(querySnapshot.empty, 'querySnapshot.empty') if (querySnapshot.empty) { return true } else { throw new Error("Username already exists") } }
about 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

No hay forma de consultar la autenticación de Firebase por el nombre para mostrar de los usuarios, ni ninguna forma de garantizar a priori que los nombres para mostrar sean únicos. Ese no es su propósito, por lo que recomendaría no intentar que haga algo para lo que no estaba destinado.

El enfoque común para tener nombres de usuario únicos es almacenarlos en alguna base de datos alojada en la nube (como Realtime Database o Firestore en Firebase, pero otros también están bien) y consultar/reclamar un nombre allí antes de llamar a la API de Firebase para crear el usuario allí. .

Este tema se ha tratado varias veces antes, por lo que recomiendo consultar estos resultados de búsqueda , como:

  • Firebase Auth ¿Hay alguna manera de asegurarse de que displayName sea único entre todos los usuarios?
  • Firebase android: haz que el nombre de usuario sea único
  • Autenticación de nombre de usuario en lugar de correo electrónico
  • Cloud Firestore: aplicación de nombres de usuario únicos
about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda