如何使用Kotlin更深入地使用属性来查询Firestore集合?

时间:2018-07-13 13:38:10

标签: firebase kotlin google-cloud-firestore

我有一个Cloud Firestore数据库用于运输:

  • 交通运输{collection}
    • TransportationId {文档}
      • TransportationName:“私人运输”
      • 汽车{收藏}
        • CarId {document}
          • CarName:“出租车”
        • CarId {document}
          • CarName:“私人出租车”

Cars集合中,我有100多辆汽车(文件)。我无法在文档中或在stackoverflow上找到如何获得CarName名称具有特定特定值的所有运输名称的方法。该如何解决?

val Taxi = db
    .collection("Transportations").document("TransportationId")
    .collection("Cars").whereEqualTo("CarName", "Private Taxi")

谢谢!

1 个答案:

答案 0 :(得分:2)

简短的答案是您无法在Firestore中实现这一目标。您无法查询数据库中的所有汽车,无论它们包含哪种运输方式。

但是在这种情况下,有一种解决方法,您应该通过创建一个名为cars的新顶级集合来稍微更改数据库结构,在其中应添加所有car对象。在每个car对象之外,您还应该添加所需的transportation作为属性。这样,您便可以根据需要查询数据库。

您的数据库结构应如下所示:

Firestore-root
   |
   --- cars (collection)
        |
        --- carId (document)
              |
              --- transportation: "Private Taxi"
              |
              --- //other car details