【发布时间】:2019-01-27 23:00:12
【问题描述】:
几天以来,我一直在寻找解决问题的方法。我尝试做的是从 Firestore 加载对象,并在结构中使用较低的过滤器。
/meetings (collection)
/meetingId
/people (object)
- uid1:1
- uid2:1
如果没有 where 查询,它可以正常工作。但是因为我想验证对象中的人。我靠墙走路。
FirebaseUser user = await FirebaseAuth.instance.currentUser();
Firestore.instance
.collection('meetings')
.where('people.${user.uid}', isEqualTo: '1')
.orderBy('sessionStart', descending: true)
.snapshots()
.listen((data) {print(data);});
返回零个结果。另外,当我自己实现array-contains 时。它不起作用。因为我想在我的数据结构上实施规则,所以我需要一个过滤。
每次执行查询时,我都会收到创建新索引的请求。 com.google.firebase.firestore.FirebaseFirestoreException: FAILED_PRECONDITION: The query requires an index. You can create it here.
当我关注 url 时,我得到创建以下索引的建议:
Collection: meetings
Fields: people.QkrzIBRs3TNHcTbYGSHsZjFPvlj2 ASC sessionStart DESC
什么会导致每个用户的索引,这不是我的愿望。
有人可以帮我解决这个问题,指导我找到正确的解决方案吗?我会很感激的!
【问题讨论】:
标签: firebase firebase-realtime-database flutter google-cloud-firestore