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

231
Vistas
firebase updateProfile () solo cambia los datos a firestore después de iniciar sesión nuevamente

Estoy tratando de guardar la variable "puntuación" en el campo "puntuación más alta" en mi base de datos de Cloud Firestore para mi usuario, pero el cambio solo aparece después de que vuelvo a iniciar sesión con Google. Cada vez que inicio sesión, también se crea un nuevo documento a pesar de que estoy iniciando sesión con la misma cuenta de Google. Hice esto mientras actualizaba una colección estándar como "displayName", pero la colección personalizada que configuré como "puntuación más alta" nunca se pudo actualizar, ni siquiera después de iniciar sesión nuevamente. He intentado recargar el usuario pero no hace nada. (Estoy usando la versión web 8 con espacio de nombres en vanilla.js)

Este es mi código:

 function gameOver () { if (score > highscore) { GAME_OVER_TEXT.innerText = 'New Highscore:'; HIGHSCORE.innerText = `${score} points.`; STARS.classList.remove('hide'); SPARKLE.classList.remove('hide'); const user = firebase.auth().currentUser; user.updateProfile({ highscore: score }).then(() => { console.log('Update successful'); }).catch((error) => { console.log('Update unsuccessful' + error); }); user.currentUser.reload(); } else { GAME_OVER_TEXT.innerText = 'Your score:'; HIGHSCORE.innerText = `${score} points.`; } }

about 4 years ago · Juan Pablo Isaza
1 Respuestas
Responde la pregunta

0

La llamada para reload carga inmediatamente el perfil actual del servidor. Dado que updateProfile también es una llamada asíncrona, ahora está cargando el perfil no actualizado. Para solucionar esto, debe volver a cargar el perfil después de que se haya completado la actualización. Asi que:

 user.updateProfile({ highscore: score }).then(() => { console.log('Update successful'); user.currentUser.reload().then(() => { console.log('Profile reloaded'); }); }).catch((error) => { console.log('Update unsuccessful' + error); });

Tenga en cuenta que updateProfile solo acepta displayName y photoURL como propiedades, ya que no puede almacenar otra información en el perfil de usuario desde los SDK del lado del cliente de Firebase. Puede usar un SDK de administrador (en un servidor o en un entorno de confianza) para establecer un reclamo personalizado con ese valor o (más probablemente aquí) almacenar la información en una base de datos personalizada (como Firestore o Realtime Database, que también forma parte de Firebase).

Esto se ha tratado varias veces antes, por lo que recomiendo consultar las preguntas anteriores sobre el tema .

about 4 years ago · Juan Pablo Isaza 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