Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

132
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda