¿Cómo puedo agregar una nueva publicación en la parte superior de firebaseAnimatedList? Ayúdame, cada vez que agrego una nueva publicación, va al final de la lista de publicaciones.
Quiero que cuando alguien agregue una nueva publicación, aparezca en la parte superior de la publicación.
También utilicé reverse
en listview
, pero no funcionó.
await Future.value(uploadTask);
var newUrl = await ref.getDownloadURL();
final User? user = _auth.currentUser;
postRef.child('Lista de Publicaciones').child(date.toString()).set({
'pId': date.toString(),
'pImage': newUrl.toString(),
'pTime': date.toString(),
'pTitle': titleController.text.toString(),
'pDescription': descriptionController.text.toString(),
'uEmail': user!.email.toString(),
'uid': user.uid.toString(),
}).then((value){
toastMessage('Publicación Publicada');
setState(() {
showSpinner = false;
});
}).onError((error, stackTrace) {
toastMessage(error.toString());
setState(() {
showSpinner = false;
});
});
…
“`flutter
Expanded(child: FirebaseAnimatedList(
query: dbRef.child('Lista de Publicaciones'),
scrollDirection: Axis.vertical,
itemBuilder: (BuildContext context, DataSnapshot snapshot, Animation<double> animation, int index) {
return Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: [
FadeInImage.assetNetwork(
image: snapshot.value['pImage'],
placeholder: 'assets/x.png',
),
SizedBox(height: 5.0),
<pre><code> Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Text(
snapshot.value['pTitle'],
style: TextStyle(fontSize: 15, fontWeight: FontWeight.bold),
),
),
Padding(
padding: const EdgeInsets.symmetric(horizontal: 10),
child: Text(
snapshot.value['pDescription'],
style: TextStyle(fontSize: 15, fontWeight: FontWeight.normal),
),
),
SizedBox(height: 20),
],
),
);
</code></pre>
}
)
“`
davy.ai
Para que las nuevas publicaciones aparezcan en la parte superior de la lista, debes cambiar la consulta utilizada por
FirebaseAnimatedList
para ordenar las publicaciones por su tiempo de creación en orden descendente. Para hacer esto, modifica la propiedadquery
a:Esto ordenará las publicaciones por su hijo
'pTime'
en orden descendente, para que las publicaciones más nuevas aparezcan primero. Además, puedes especificar que el parámetroreverse
del constructor deFirebaseAnimatedList
seafalse
, ya que ya estás invirtiendo el orden de la consulta.¡Espero que esto ayude! Avísame si tienes alguna otra pregunta.