Come limitare il numero di documenti da Firebase con date in Flutter
Aug 25 2020
Sto creando un'app flutter che recupera i documenti tramite Firebase Cloud Firestore, ma voglio che mostri solo i documenti scritti quel giorno. Come se aggiungessi alla collezione, restituirà solo i documenti per oggi. Per favore aiuto
Container(
height: MediaQuery.of(context).size.height,
child: StreamBuilder<QuerySnapshot>(
stream: Firestore.instance.collection('all').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return Text('.....Loading');
}
return ListView.builder(
scrollDirection: Axis.vertical,
itemCount: snapshot.data.documents.length,
itemBuilder: (context, index) {
DocumentSnapshot all = snapshot.data.documents[index];
return Container(
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceAround,
children: [
Column(
children: [
Text('10:00', style: TextStyle(fontSize: 18),),
SizedBox(height: 3,),
Text('05 Sep', style: TextStyle(fontSize: 13),),
],
),
Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: [
Text('Europa league', style: TextStyle(fontSize: 15),),
SizedBox(height: 2,),
Text( '${all['gg']['home']} vs ${all['gg']['away']}', style: TextStyle(fontSize: 18, fontWeight: FontWeight.w500),),
Risposte
Jan Aug 25 2020 at 14:33
devi solo inserire una clausola where sulla query in questo modo (questo dà tutto ciò che è stato fatto nelle ultime 24 ore):
Firestore.instance
.collection("all")
.where("created_date", isGreaterThan: DateTime.now().subtract(Duration(days: 1)) )
.snapshots();
Assicurati che i tuoi dati abbiano delle date, quando li inserisci puoi farlo in questo modo:
Firestore.instance
.collection("all")
.add({
'data': "data",
'created_date' : FieldValue.serverTimestamp(),
});