当前位置: 首页 > 知识库问答 >
问题:

如何从Kotlin的更深一步使用属性查询Firestore集合?[副本]

澹台承载
2023-03-14
  • 传输{收集}
    • TransportationID{document}
      • TransportationName:“Private Transaportation”
      • 汽车{收藏}
        • Carid{document}
          • Carname:“Taxi”
          • 车辆名称:“私人出租车”

          cars集合中,我有超过100辆汽车(文档)。我在文档中或stackoverflow上都找不到如何获取carname名称具有特定值的所有运输名称。对此如何解决?

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

共有1个答案

武元白
2023-03-14

简单的回答是,您无法在FireStore中实现这一点。您不能在数据库中查询所有的汽车,而不管是哪个运输工具包含这些汽车。

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

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

Firestore-root
   |
   --- cars (collection)
        |
        --- carId (document)
              |
              --- transportation: "Private Taxi"
              |
              --- //other car details
 类似资料:
  • 我想我读到您可以使用新的Firebase Firestore查询子集合,但我没有看到任何示例。例如,我以以下方式设置了Firestore: 舞蹈[收藏] DanceName 歌曲[收藏] 松南 我如何才能查询“查找所有的舞蹈在songName=='x'”

  • 在Firestore中,我有一个用户集合,在每个用户文档中存储一个名为favorites的集合,该集合包含标记为favorites(存储)的文档的ID 我可以采取另一种方法来获取两个集合并手动过滤它们,但我使用的是Firebase RecycerView适配器,它显示的所有数据都基于查询,这将使事情更加高效。 这样的结果是如何实现的呢?如果需要进一步的解释,请告诉我

  • 假设我有以下映射目标。 如何从其他属性的Iterable映射到其他属性? 我可以这样做吗?

  • 我试图创建一个查询来获取一个firestore集合/文档,其中userId等于当前userId,或者当前userId等于contributorsid。 我想让它给我所有陈述属实的文档。但它只返回第一个。如果我选择只包含其中一个查询(“where”),它们都会工作并返回正确的文档。