Quiero mostrar las publicaciones en el feed por la fecha en que se publicaron, actualmente las estoy mostrando por parte del usuario y eso es muy confuso, me gustaría mejor si mostrara las publicaciones por la fecha en que se creó la publicación, yo estoy usando Firebase y Vue.js v2
Sé que firebase almacena una marca de tiempo automáticamente, así que estoy buscando una manera de ordenar las publicaciones por esa marca de tiempo, independientemente del orden del usuario, ¿es posible?
aquí está el código que estoy usando para obtener los datos de Firebase y el código del componente.
<template> <div> <div v-for="post in allPosts.slice().reverse()" :key="post._key"> <v-card class=" feed-card my-3"> <v-row no-gutters> <v-col cols="1"> <v-img class="align-center rounded-xl " width="30" :src="post.photoURL"> </v-img> </v-col> <v-col cols="10"> <p class="">{{post.postText}}</p> <p class="blue-grey--text ">{{post.displayName}}</p> </v-col> </v-row> </v-card> </div> </div> </template> <script> import firebase from '@/plugins/firebase' let db = firebase.database(); //let usersRef = db.ref('users'); let postRef = db.ref('posts'); export default { name: 'FintechSocialFeed', data: () => ({ authUser: null, allPosts: [] // initialise an array }), methods: { }, created: function() { data => console.log(data.user, data.credential.accessToken) firebase.auth().onAuthStateChanged(user => { if (user) { postRef.on('value', snapshot => { const val = snapshot.val() if (val) { this.allPosts = Object.values(val).flatMap(posts => Object.entries(posts).map(([ _key, post ]) => ({ _key, ...post}))) } console.log(snapshot.val()) }); } }) } } </script>aquí hay una pequeña imagen de cómo se ve, primero son las publicaciones de Abraham, luego las de Jake, así que quiero que sea por fecha, no por orden de usuario.
Firestore solo puede ordenar/filtrar datos sobre valores para los que tiene índices. Si bien también puede almacenar metadatos adicionales para sus propios fines, estos valores generalmente no están indexados (la ID del documento es la única excepción) y, por lo tanto, no se pueden usar en consultas.
Por lo tanto, no hay forma de ordenar los resultados de Firestore en función de la marca de tiempo interna. Si desea poder ordenar documentos en una marca de tiempo, deberá almacenar esa marca de tiempo como un campo en el documento y luego pasar ese nombre de campo a orderBy .