【发布时间】:2021-03-08 10:54:48
【问题描述】:
如何从 Firestore 获取最新的第一个?
FirebaseFirestore.instance.collection(Strings.factsText)
.where(
Strings.category,
whereIn: [Strings.climateChange])
.orderBy('timestamp', descending: true)
.snapshots(),
...
final factsDocs = snapshot.data.documents;
return FactsListContainer(factsDocs: factsDocs);
});
与.orderBy 一起使用时,问题似乎出在.where!
【问题讨论】:
-
嗨。你没有带日期的字段?还是按字母顺序排列的字段?如果是,您可以使用 .orderBy("date", Query.Direction.DESCENDING) 订购数据,然后使用 .limit(1) 获取第一个数据
-
@ande 嗨,我尝试添加一个 createdAt 字段,但是当我尝试将 orderBy 与我的代码合并时,我无法让它工作。你能告诉我它如何与我在这里提供的代码一起工作吗?
-
我不是颤振专家(firestore 更多),但您可以看到stackoverflow.com/questions/58154176/… 并在添加查询后添加 .limit(1)。对我来说它将是 .collection(Strings.factsText).where(...).orderBy("createdAt", descending: true).limit(1).snapshots()
-
@ande 谢谢。这是我之前尝试过的,但出现错误:getter 'documents' was called on null
-
你确定你的“Strings.factsText”是一个集合吗?
标签: firebase flutter google-cloud-firestore