Comment limiter le nombre de documents Firebase avec des dates dans Flutter
Aug 25 2020
Je suis en train de créer une application Flutter qui récupère les documents via Firebase Cloud Firestore, mais je veux qu'elle n'affiche que les documents écrits ce jour-là. Comme si j'ajoute à la collection, il ne renverra que les documents d'aujourd'hui. Veuillez aider
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),),
Réponses
Jan Aug 25 2020 at 14:33
il vous suffit de mettre une clause where sur la requête comme ceci (cela donne tout ce qui a été fait au cours des dernières 24 heures):
Firestore.instance
.collection("all")
.where("created_date", isGreaterThan: DateTime.now().subtract(Duration(days: 1)) )
.snapshots();
Assurez-vous que vos données ont des dates, lors de l'insertion, vous pouvez le faire comme suit:
Firestore.instance
.collection("all")
.add({
'data': "data",
'created_date' : FieldValue.serverTimestamp(),
});