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

76
Vistas
La web no muestra correctamente el estado de actividad

Estoy construyendo un sitio web de chat. Todo funciona muy bien excepto el estado de actividad. Al principio parece funcionar, pero a veces falla, especialmente cuando un usuario envía un mensaje. Cambia automáticamente al valor anterior (por ejemplo, "en línea" pasa a "hace 10 minutos", que es el valor anterior de la base de datos. Estoy usando JS y Firebase. Tiene 4 partes que son responsables del estado de la actividad. Incluso aunque la base de datos contiene el buen valor de la actividad. Algo en mi código está roto y muestra el valor incorrecto.

Aquí está mi código:

 // logging and disconnecting firebase.auth().setPersistence(firebase.auth.Auth.Persistence.SESSION); firebase.auth().onAuthStateChanged(function (user) { if (user) { currentUser.style.display = "block"; currentUser.innerHTML += firebase.auth().currentUser.email; document.getElementById("logout").style.display = "block"; username = firebase.auth().currentUser.displayName; // updating the user's online status let connectionsRef = db.ref("status/" + username + "/connections"); let lastOnlineRef = db.ref("status/" + username + "/lastOnline"); let connectedRef = db.ref(".info/connected"); connectedRef.on("value", function (snapshot) { if (snapshot.val() === true) { const connection = connectionsRef.push(); connection.onDisconnect().remove(); connection.set(true); lastOnlineRef.onDisconnect().set(firebase.database.ServerValue.TIMESTAMP); } }); } }); // setting user's last-online status (function) function lastOnline() { let lastOnline = db.ref("status/" + receiver + "/lastOnline"); lastOnline.on("value", function (snapshot) { const lastOnlineDate = snapshot.val(); const displayedLastOnline = timeSince(lastOnlineDate); document.getElementById("status").innerHTML = "last seen: " + displayedLastOnline + " ago"; }); } // logging out (function) function logout() { firebase.auth().signOut().then(() => { window.location.replace("./index.html"); }).catch((error) => {}); }
about 4 years ago · Juan Pablo Isaza
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