如何解决基于 FIFO 删除 Firestore 条目
我正在尝试创建一个脚本,该脚本使用 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();
});
});
我收藏中的一个条目示例如下:
所以我知道逻辑、连接、字段等...都是正确的,但为什么第一个例子不起作用?
解决方法
你检查过你的日志吗?我很确定 Firebase 会抛出一个错误,指出您的集合需要带有链接的索引。 只需按照链接和说明来构建索引。完成后,您应该能够做您想做的事情。
关于索引的更多信息:https://firebase.google.com/docs/firestore/query-data/indexing
和简单查询/复合查询:https://firebase.google.com/docs/firestore/query-data/queries
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。