我尝试为在线商店提供Firebase实时数据库结构。
商店应该有一个产品集合,每个产品可以属于一个或多个类别。是否可以构建查询以使用单个HTTP请求获取computers
类别中的所有产品(假设我使用Firebase REST API)?以下是一个示例数据:
{
"products": {
"-KaXxv2xD9WaIqHMsHYM": {
"title": "Item 1",
"categories": {
"electronics": true,
"computers": true
}
},
"-KaXyvdw5gmuBmGi5unb": {
"title": "Item 2",
"categories": {
"electronics": true
}
},
"-KaXyyyzmP9Y6askhLdx": {
"title": "Item 3",
"categories": {
"computers": true
}
}
}
}
我还试图为categories
使用数组,但看起来阵列支持在Firebase中非常有限,应该避免使用它们。
更新
此查询有效:
GET /products.json?orderBy="categories/computers"&equalTo=true
但它需要每个类别的索引:
{
"rules": {
"products": {
".indexOn": ["categories/computers", "categories/electronics"]
}
}
}
答案 0 :(得分:0)
您应该有一个额外的categories
节点,其中包含products
列表。这样可以更轻松,更有效地访问特定类别的产品。
类似的方法用于Firebse样本。 See code
childUpdates.put("/posts/" + key, postValues);
childUpdates.put("/user-posts/" + userId + "/" + key, postValues);
他们在posts
和user-posts
个节点保存了相同的数据。