オンラインストアのFirebaseリアルタイムDB構造を思いつきます。 ストアには製品のコレクションが必要です。各製品は1つ以上のカテゴリに属することができます。 computers
カテゴリのすべての製品を単一のHTTPリクエストで取得するためのクエリを作成することは可能ですか(Firebase REST APIを使用していると仮定します)。ここでは、データのサンプル片である: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
のための配列を使用しようとしているが、アレイのサポートがFirebaseでは非常に限られており、彼らは避けるべきであるように見えますました。
UPDATE:
このクエリは動作します:
GET /products.json?orderBy="categories/computers"&equalTo=true
をしかし、それはすべての単一のカテゴリのインデックスが必要です。
{
"rules": {
"products": {
".indexOn": ["categories/computers", "categories/electronics"]
}
}
}
私は別の 'categories'ノードについて考えていましたが、カテゴリーだけをプロダクトIDマッピングに保持します。これは、カテゴリに上位50製品のページを表示したいのですが、 。 –
実際には、カテゴリノードの下に完全な製品情報を保存してください。それはFirebaseのサンプルでも同様のケースが示されています。私は私の答えを編集しました。しかし、私は本当に解決策に疑問があるので、他の答えを待ってください。 – Devrim
ありがとう、ありがとう。これは不幸なことです。すべての場所を同期させておくのは残念です。私が製品の説明を更新するたびに、私はすべてのカテゴリを通過してそれを修正する必要があります。 NoSQLデータストアの洗練されたクエリ機能は期待していませんが、この点に関してFirebaseはあまりにも制限されています。 –