Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

123
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!