0
我嘗試爲網上商店提供Firebase實時DB結構。 商店應該有一個產品集合,每個產品可以屬於一個或多個類別。是否有可能構建一個查詢,以便使用單個HTTP請求(假設我使用Firebase REST API)獲取computers
類別中的所有產品?下面是一個簡單的數據塊:查詢Firebase中的孫子屬性
{
"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
,但看起來像陣列的支持在火力地堡非常有限,他們應該避免。
UPDATE:
此查詢的工作:
GET /products.json?orderBy="categories/computers"&equalTo=true
但是,它需要爲每一個類別的一個指標:
{
"rules": {
"products": {
".indexOn": ["categories/computers", "categories/electronics"]
}
}
}
我正在考慮一個單獨的'categories'節點,但它只會保留產品ID映射的類別,這意味着如果我想在類別中顯示前50個產品的頁面,則需要發出51個HTTP請求。 –
其實你應該在分類節點下保留完整的產品信息。 Firebase樣本中也顯示了類似的情況。我編輯了我的答案。但請等待其他答案,因爲我真的想知道解決方案。 – Devrim
我明白了,謝謝。這是不幸的,保持所有的地方同步爛。每當我更新產品說明時,我都需要瀏覽所有類別並在此處修復。我不希望NoSQL數據存儲能夠提供複雜的查詢功能,但Firebase在這方面看起來太侷限了。 –