【问题标题】:How can I create custom options for every category?如何为每个类别创建自定义选项?
【发布时间】:2021-11-03 12:52:03
【问题描述】:

我在 Cloud Firestore 中有 2 个类别,结构如下所示:

Categories (Collection)
|
--- 6FbwakI8Jh8Pst79kEV8 (Document)
    |
    --- Category Name (String) => "Cars For Sale"
--- nMWCgN7g9hZsMaeJPLRj (Document)
    |
    --- Category Name (String) => "Cars For Rent"

如何为每个类别创建自定义选项,如下图所示:

Image 1: Cars For Sale
Image 2: Cars For Rent

每个类别都有不同的选项,我想知道如何在我的类别中使用 Firebase Firestore 创建类似的内容?

URL如果你想自己检查。

【问题讨论】:

    标签: firebase google-cloud-platform google-cloud-firestore


    【解决方案1】:

    我能想到的最简单的解决方案是为每种类型的操作创建两个单独的集合,如下所示:

    Firestore-root
       |
       --- Cars For Sale (collection)
       |     |
       |     --- //Options in the first screenshot
       |
       --- Cars For Rent (collection)
             |
             --- //Options in the second screenshot
    

    由于查询可能总是返回单个类别的文档,因此此架构是最简单的。

    【讨论】:

    • Car Make, Model, Car Types, Transmission, Color, etc... 选项将是数组类型,但 Price 选项的类型呢?
    • 每个字段包含多个值,可以添加为数组类型字段,或者更好的添加为 Map,这样就可以执行多个 whereEqualTo 函数调用。而价格应该是一个数字。要执行查询,查找价格范围内的汽车,您可以使用 startAt() 和 endAt() 函数。就是这样。
    【解决方案2】:

    好吧,我认为您可以使用以下脚手架来实现这一点。注意过滤器包含category ID,它将过滤器映射到category。因此,您可以通过这种方式创建 n 数量的 filtersn 数量的 categories

    collection document id document data
    categories 6FbwakI8Jh8Pst79kEV8 { name: "Cars For Sale" }
    nMWCgN7g9hZsMaeJPLRj { name: "Cars For Rent" }
    filters nMWCgN7g9hZsMaeJPLRj { name: "Car Make", value: ["V1", "V2", "V3"], category: 6FbwakI8Jh8Pst79kEV8 }
    { name: "Car Model", value: ["X", "Y", "Z"], category: nMWCgN7g9hZsMaeJPLRJ }

    然后您可以使用简单的get() 查询从集合中获取数据。

    【讨论】:

    • 好的,我试试这个解决方案,谢谢。
    猜你喜欢
    • 2011-08-30
    • 1970-01-01
    • 2021-10-03
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多