quiero leer el mensaje de la base de datos en tiempo real en firebase con vue o javascript en quasar framework
mi nombre de colección en db es mensajes que tienen esta estructura: ************************************** ***** mi estructura de base de datos *******
messages -N4zbIt0Ey6Bix54f5SE content: "Hi" fromId: "nTTcnND2y6OHUBVO2GxHoBFwQf32" timestamp: 1655703420767 toId: "0FXpksPdL4OAf9KAXx9B0R6nzmh2" type: 1 -N4zbIt0Ey6Bix54f5SE content: "Hi,HOW ARE YOU" fromId: "0FXpksPdL4OAf9KAXx9B0R6nzmh2" timestamp: 1655703448111 toId: "nTTcnND2y6OHUBVO2GxHoBFwQf32" type: 1¿Sabes cómo consulto Firebase para obtener mensajes? esto es para guardar en estado con Vuex
firebaseGetMessages({ commit, state }, otherUserId) { let userId = state.userDetails.userId messagesRef = firebaseDb.ref('messages/' + fromId + '/' + toId) messagesRef.on('child_added', snapshot => { let messageDetails = snapshot.val() let messageId = snapshot.key commit('addMessage', { messageId, messageDetails }) })Creo que este código es incorrecto. Por favor, ayúdame si tienes alguna experiencia con Firebase.
no estoy familiarizado con la base de datos en tiempo real y la consulta en fcm, pero estoy familiarizado con la base de datos del servidor mongodb y sql. ¡Creo que firebase tiene alguna función para leer el mensaje! no es asi???
De hecho, su código no coincide con la estructura de datos que compartió.
Su código espera esta estructura:
messages: { "uidOfSender": { "uidOfRecipient": { ... } } }Mientras que su estructura de datos tiene los UID del remitente y el receptor como propiedades en cada mensaje en una lista plana.
Peor aún: no hay forma de obtener los mensajes entre un remitente y un receptor desde su estructura actual, ya que las consultas de Firebase Realtime Database solo pueden filtrar en una propiedad. Consulte mi respuesta aquí para obtener más información al respecto: Consulta basada en múltiples cláusulas where en Firebase
La estructura de datos en general parece una traducción 1:1 de lo que haría en una base de datos de relaciones, que a menudo no es un buen punto de partida cuando se modelan datos para una base de datos NoSQL. Lo que querrá hacer es crear una estructura de datos diferente donde configure una especie de "sala de chat" para cada par de usuarios, como lo mostré aquí: Lamejor manera de administrar los canales de chat en Firebase
También recomiendo leer Modelado de datos NoSQL y ver Firebase para desarrolladores de SQL .