Flutter Firebase whereIN 10 限制问题答案
Flutter Firebase whereIN 10 limit ProblemFlutter Firebase whereIN 10 限制问题
我有这样的 id 列表;
List<dynamic> saveIDList = [];这个列表中的值会根据用户保存的id而变化。
我尝试显示用户保存的帖子。所以我创建了一个这样的查询;
Query saveIDRef = _firestore
.collectionGroup("Posts")
.where("postID", whereIn: saveIDList);
创建此查询后,我在流构建器中调用 saveIDRef。到目前为止,我的代码没有任何问题,可以正常工作,但是当 saveIDlist 的长度超过 10 时,我会收到警告。
我无法更改我的数据库表单或查询我的 saveIDList 的方式,我该如何解决这个问题?
我尝试了不同的解决方案,但没有奏效。
例如,我创建这样的块列表;
var chunks = [];
for (var i = 0; i < saveIDList.length; i += 10) {
chunks.add(saveIDList.sublist(
i, i + 10 > saveIDList.length ? saveIDList.length : i + 10));
}
我在 saveIDList 中分离了值,然后我在 whereIN 查询中使用了这样的块;
Query saveIDRef = _firestore
.collectionGroup("Posts")
.where("postID", whereIn: chunks);
但这也没有用。当我像这样查询块列表时;
Query saveIDRef = _firestore
.collectionGroup("Posts")
.where("postID", whereIn: chunks[0]);
它有效。但我想查询块列表中的所有元素,而不是块列表的唯一第一个元素。当我将此代码放入 for 循环时,出现 whereIN 查询不能多次使用的错误。