私は現在、管理者がイメージにタグを付けることができるアプリケーションを作成しています。訪問者はタグを検索し、そのタグを持つ画像を見ることができます。Firebaseでクエリを行うためのデータ構造を設定する
1つのイメージに複数のタグを含めることができます。これは私が現在、私のデータを設定しているかを表し:
Images: {
PUSH_ID: {
url: "https://cdn.filestackcontent.com/o0ze07FlQjabT9nuteaE",
tags: {
PUSH_ID: {
tag: "1324"
},
PUSH_ID: {
tag: "4321"
}
}
}
}
訪問者がタグを検索すると、私はタグを照会し、指定したタグを持つ画像のURLを見つけることができるようにする必要があります。
ref.orderByChild('tags/tag').equalTo(tag).once("value"...)
しかし、いくつか読んだ後、私は、あなたがFirebaseで深いだけクエリ1つのレベルにすることができます理解に来ている:私はこの線に沿って何かがうまくいくことを考えていました。
このような場合は、データを再構成する必要がありますが、どのように構成する必要があるかわかりません。
誰でも手伝ってもらえますか?
Btw;私は、Firebaseで検索するためにElasticsearchのようなものを使うべきだと言われていますが、このアプリはトラフィックが限られているイベント用です。
ありがとうございます!
これは本当に良い答えです。フランクに感謝します。画像にタグを表示する場合は、「タグ」接頭辞のクライアント側を削除するだけです。そうですか? –
また、私は画像を削除したいと言っています。私はまた関連するイメージタグを削除したいと思う。自分のイメージIDを持つすべてのタグを見つけるために、 "TagsToImages"オブジェクトで実行するクエリは何ですか? –
確かに:クライアントでは、値を元に戻すだけです。ここでFirebaseクライアントの気まぐれな動作に取り掛かりつつあります。タグを使ってすべての画像を取得するには 'ref.child( 'TagsToImages')。子( 'tag' + tag_id ')。on(' child_added '...') –