我正在寻找返回包含特定肌肉群参考的所有锻炼者。
我试过了:
val db = FirebaseFirestore.getInstance()
db.collection("exercises")
.whereEqualTo("musclesGroups.hgMweNPXXXXXXXXX", true)
.addSnapshotListener({ value, e ->
Log.i("test", "Exercises " + value.documents.size)
})
但是没有结果也没有错误,大小为0
。
答案 0 :(得分:2)
无法查询数组中是否存在某个值。请查看Firebase documentation on working with arrays, lists , and sets,了解可以实现目标的替代数据结构。
看起来您的查询已经来自那里,但您的数据结构不符合该解决方案中列出的模型。要编写正确的结构,文档会使用Map
,其中包含您要在密钥中过滤的值,以及值中的true
:
Map<String, Boolean> categories = new HashMap<>(); categories.put("technology", true); categories.put("opinion", true); categories.put("cats", true); MapPost myMapPost = new MapPost("My great post", categories);