我目前正在使用whereIn
。但是一次只能得到10个或更少的条目。其中根据firestore文档,10个条目或更少
有没有办法在一次往返中同时获得10份以上的文件?
return _db
.collection('books')
.where('docId', whereIn: ['id1', 'id2'...'id10'])
.get()
.then((value) => value.docs.map((e) => BookModel.fromFireStore(e)).toList());
2条答案
按热度按时间8zzbczxx1#
不可以,10是一个硬性限制,不能超过。您需要执行多次查询才能按ID获取10个以上的文档。文档中规定:
使用
in
运算符可以使用逻辑OR在同一字段上合并最多10个等式(==)子句。mznpcxlj2#
问题已经回答了。这里我只想展示一下如何通过多次往返获取这些文档,因为这也不是一件容易的事情。我花了一些时间来实现这一点,所以我希望它能保存其他人的时间。
首先为一个往返创建一个函数:
然后把你的身份证分成10份
然后运行多个请求并合并其结果: