firebase - 即使在添加索引后,Firestore 查询也不起作用
问题描述
我正在尝试根据 int 字段按降序获取数据 -从具有特定 id 字段的value
集合组中获取数据。record
为此,我做了一个这样的集合组查询:
yield*
FirebaseFirestore.instance
.collectionGroup('record')
.where(ConstStrings.teamId, isEqualTo: team.uid)
.orderBy(ConstStrings.value, descending: true)
.snapshots()
.map(
(snapshot) => right<Failure, List<Record>>(
snapshot.docs
.map((doc) => RecordDto.fromFirestore(doc).toDomain())
.toList(),
),
)
.onErrorReturnWith((e) {
if (e is PlatformException &&
e.message.contains('PERMISSION_DENIED')) {
return left(const RecordFailure.insufficientPermission());
} else {
return left(const RecordFailure.unknownError());
}
});
我为此查询添加了复合索引,如下所示:
record
(集合 ID)teamId Ascending value Descending
(索引字段)
Collection group
(查询范围)
如果我删除orderBy
,查询会显示预期列表,但如果我保留它,它会显示空列表orderBy
。这里实际上有什么问题。
解决方案
推荐阅读
- python - 网格中的反距离加权插值(Python)
- scala - Scala程序以下面的格式显示输出
- angular - Angular + PrimeNG 自定义确认对话框
- python - Django 静态文件 URL、ROOT、DIR 混淆
- objective-c - 将 excel 文件的大量记录加载到 Core Data(离线存储)
- node.js - 设置 Angular 5 + express 打字稿
- r - 如何从R中的向量中删除“”
- javascript - HTML 画布意外更改颜色
- processing - 我的绘图操作有问题
- image - 可以在图像上绘制“可擦除”箭头和线条吗?