基本的に、タバコセグメントと水ギセルセグメントのどちらが押されたかに基づいて、UITableViewにすべてのタバコと利用可能なすべての水ギセルを表示したいと思います。最初にブランドが表示され、その後に「製品」(すべてのタバコや水ギセルなど)が表示されます。では、Firebaseデータベースはどのように正確に表示される必要がありますか?すべての製品(水ギセル、タバコ)には「名前」、「ブランド」、「評価」、「説明」が必要だからです。2番目の質問:テーブルビューでこれらすべての情報をコードで受け取るにはどうすればよいですか?今のところ、テーブルビューのセクションの次の構造を使用しています。これは、変数pが0または1の場合に依存します。次に、インデックス0または1のセクションを選択します(クリックされたセグメントに基づいて)。
var sections = [[Section(brand: "7 Days", products: ["Tabak1", "Tabak2", "Tabak3"], expanded: false),
Section(brand: "Zomo", products: ["Tabak1", "Tabak2", "Tabak3"], expanded: false)],
[Section(brand: "Aeon", products: ["Shisha1", "Shisha2", "Shisha3"], expanded: false),
Section(brand: "Vendetta", products: ["Shisha1", "Shisha2", "Shisha3"], expanded: false)]]
2つの問題のいずれかに対する回答をいただければ幸いです。ありがとうございました!
単にデータを読み取っていて、クエリを実行しない場合は、非常に簡単です。
root
all_data
data_0 //created with .childByAutoId
brand: "7 days"
products:
"Tabak1": true
"Tabak2": true
data_1
brand: "Zomo"
products:
"Tabak1": true
"Tabak2": true
data_3
brand: "Aeon"
products:
"Shisha1": true
"Shisha2": true
ただし、たとえばTabak2製品を使用しているすべてのブランドを照会する場合、これにより問題*が発生します。そこで、Tabak2を持つブランドノードを簡単に特定できる代替案を次に示します。
root
brands
brand_0
brand: "7 days"
brand_1
brand: "Zomo"
brand_2
brand: "Aeon"
products_by_brand
brand_0
"Tabak1": true
"Tabak2": true
brand_1
"Tabak1": true
"Tabak2": true
brand_2
"Shisha1": true
"Shisha2": true
そして、あなたが超クールになりたいのなら、ここにすべての製品とブランドを相互参照する構造があります。これにより、さまざまなクエリが可能になり、単一の製品を複数のブランドにリンクしたり、その逆を行うことができます。
root
brands
brand_0 //created with .childByAutoId
brand: "7 days"
product_0: true //products should probably be in a child node
product_1: true
brand_1
brand: "Zomo"
product_0: true
product_1: true
all_products
product_0
name: "Tabak1"
brand_0: true
brand_1: true
product_1
name: "Tabak2"
brand_0: true
brand_1: true
*これは実際にはディープパスクエリを介して実行できます
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加