我有田地users
在文档中,该字段包含数组中的两个元素。我必须检查该数组中的特定两个值。
首先,我用了array-contains
为此方法两次,但出现错误。
如何访问 Cloud Firestore 中数组字段的索引?
下面的代码是我的方法,但它不起作用:
QuerySnapshot querySnapshot = await sl.get<FirebaseAPI>().getFirestore()
.collection('messages')
.where('users'[0],isEqualTo: 'user1ID')
.where('users'[1],isEqualTo: 'user2ID')
.getDocuments();
简单的火库结构
Firestore 无法根据数组中存在的元素的索引查询数据库。确实,你不能链接多个array-contains
在查询中调用,但还有另一种解决方法可以帮助您实现相同的目标。因此,您的数据库结构需要进行更改。因此,您可以使用映射而不是使用数组,并且您的架构应类似于以下内容:
Firestore-root
|
--- messages (collection)
|
--- users (map)
|
--- user1ID: true
|
--- user2ID: true
现在像这样的查询将完美地工作:
QuerySnapshot querySnapshot = await sl.get<FirebaseAPI>().getFirestore()
.collection('messages')
.where('users.user1ID',isEqualTo: true)
.where('users.user2ID',isEqualTo: true)
.getDocuments();
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)