gpt4 book ai didi

firebase - Flutter Cloud Firestore whereIn 子句

转载 作者:行者123 更新时间:2023-12-05 06:21:34 27 4
gpt4 key购买 nike

我尝试使用此代码从 Cloud firestore 获取一些列表

final User user = UserUtils.currentUser(context);

final List<String> memberLists = user.memberLists.toList();
final List<String> ownedLists = user.ownedLists.toList();
final List<String> visibleListsIds = memberLists + ownedLists;

final Query query = (sharedCollection.where(FIELD_LIST_ID, whereIn: visibleListsIds));

log.d("queryPath: ${query.reference().path}");
log.d("buildArguments: ${query.buildArguments()}");

return query.snapshots().map((QuerySnapshot querySnapshot) {
return querySnapshot.documents
.map(
(document) {
log.d("document: ${document.documentID}");
return _getSerializers()
.deserializeWith(WishList.serializer, document.data);
},
)
.where((value) => value != null)
.toList();
});

当我这样做时,我没有得到任何带有“document: ...”的日志,因为显然查询没有得到文件。以下是查询的 buildArguments:
buildArguments: {其中: [[listId, in, [IIAY56KF0mSCx1WwCXaV]]], orderBy: [], 路径: WISHLISTS
注意:Wishlists 是正确的路径,listId 也是正确的。

如果我将查询行更改为:final Query query = sharedCollection; 它只会吐出所有列表,因此理论上它应该可以工作。我认为 whereIn 运算符存在一些问题。
有没有人知道为什么这不起作用?我很乐意提供任何帮助。

最佳答案

whereIn 运算符使用记录在案的相同查询 here , 并且限于 10 个等式子句。这里的解决方法是将列表 visibleListsIds 拆分为更小的 block ,类似于此 Stack Overflow post 中提到的内容.

关于firebase - Flutter Cloud Firestore whereIn 子句,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59736584/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com