【发布时间】:2021-06-22 01:06:43
【问题描述】:
我正在尝试创建一个脚本,该脚本使用 FIFO(先进先出方法)从 Firestore 集合中删除记录。
因此,如果集合中有三个匹配结果,则脚本应采用添加的第一个并删除那个(留下剩余的两个)。我的代码是:
_firestore
.collection('myCollection')
.where('uid',
isEqualTo: _auth.currentUser.uid)
.where('field',
isEqualTo: widget.field)
.orderBy('Posted', descending: false)
.limit(1)
.get()
.then((querySnapshot) {
querySnapshot.docs
.forEach((documentSnapshot) {
_firestore
.collection('myCollection')
.doc(documentSnapshot.id)
.delete();
});
});
(请注意:“已发布”是添加条目的日期)不幸的是,这不起作用,所有三个结果都保留在集合中。
如果我改用这个脚本,那么所有三个结果都会从集合中删除:
_firestore
.collection('myCollection')
.where('uid',
isEqualTo: _auth.currentUser.uid)
.where('field',
isEqualTo: widget.field)
.get()
.then((querySnapshot) {
querySnapshot.docs
.forEach((documentSnapshot) {
_firestore
.collection('myCollection')
.doc(documentSnapshot.id)
.delete();
});
});
我的收藏中的一个条目示例如下:
所以我知道逻辑、连接、字段等...都是正确的,但为什么第一个示例不起作用?
【问题讨论】:
-
我复制了这个,但是在创建了所需的索引之后,我做你想做的事情没有问题。你确定它们是完全建成的吗?
标签: flutter google-cloud-firestore collections snapshot