我的Android应用在路径val documentName = "pets/$userid/$animal/$animalId"
之后的Firestore中保存了文档。 动物可以是猫,狗,鸟等。我想让特定用户拥有所有宠物,然后想遍历宠物列表。我怎么做?我没有找到一个例子。所以基本上我有
firestore.document("pets/$userId").get().addOnSuccessListener {
// now what?
}
答案 0 :(得分:0)
没有办法遍历客户端SDK中的所有集合,也没有办法查询具有不同名称的集合。
因此,唯一的真实选择是对每个子集合执行单独的查询:
firestore.document("pets/$userId/cat").get()...
firestore.document("pets/$userId/dog").get()...
firestore.document("pets/$userId/bird").get()...
然后将它们合并到客户端。
我还要考虑您是否真的需要这些子集合。您还可以将所有它们存储在一个子集合中,并使用字段来区分动物类型。那是一个更简单的模型,对于该用例可能会很好地工作。
答案 1 :(得分:0)
您不能在单个查询中跨多个子集合进行查询。查询必须针对单个集合或子集合(或针对所有具有完全相同名称的集合的集合组查询)。此外,Firestore客户端SDK也无法列出文档下的子集合。
您可能应该重组数据以支持您要进行的查询,这意味着将整个事物列表放入具有可预测名称的单个子集合中。