2016-10-16 14 views
1

Firebaseデータベースからデータを取得するXcode 8/Swift 3プログラムを実行しています。私は "店"の詳細に "ブランド"を追加しています。私は、次のコードを使用して、このような地域や大通りなどの「根」のすべてのデータにアクセスすることができる午前FireBaseからネストされたNSDictionaryデータにアクセスする方法

NSDictionary Screenshot

:ここ

は次のようにデータが見えるものです。

let storeName = value["StoreName"] as! String 
let subThouroughfare = value["subThouroughfare"] as! String 
let thouroughfare = value["Thouroughfare"] as! String 
let administrativeArea = value["administrativeArea"] as! String 

私が埋め込まれたデータにアクセスする方法がわからない、と最終的なように構成された4つの値を持つ以上、その後1「ブランド」キーが存在します。

$StoreKey: 
    brands: 
     $brandKey1: 
      Value1: String 
      Value2: String 
      Value3: String 
      Value4: String 
     $brandKey2: 
      Value1: String 
      etc... 

これまでのところ、私は構造体を持っています以下、私はテーブルのブランドの一部からブランドを照会する必要がありますようにセットアップ:私は、テーブルを埋めることができるようにそのデータを取得し、利用可能な配列にそれを構築するための最良の方法は何

var ProductList = [storeStruct]() 
struct BrandStruct{ 
    let BrandKey: String 
    let BrandName: String 
    let Value1: String 
    let Value2: String 
    let Value3: String 
    let Value4: String 
} 

?または、私が使用できる何かが得られるまでFirebaseに問い合わせを続ける必要がありますか?

ありがとうございました!

+0

私は辞書をどのように深く潜り込むのかは分かりません。今は辞書の最初のレイヤーからデータを取り出していますが、ブランドのキーと値を取得する方法がわかりません。 – JpeckStL

+0

実際のクエリで質問を再構築して、質問が不明瞭で、不要な詳細を削除し、実際のJSON構造を含める – Dravidian

+0

さて、私はその質問を理解していると思います。私の答えがあなたにとって有用かどうかを見てください。 – matt

答えて

0

let brands = value["brands"] as! NSDictionaryを、既に実行しているものと完全に平行して取得します。今度はbrands.allKeysを求めてください。それはブランドキーの配列です。各キーについてbrands[thisKey] as! NSDictionaryを入力すると、"Val1""Val2""Val3"、および"Val4"の4つの値を含む辞書が返されます。 (また、これらのキーの名前と数量が異なる場合は、allKeysがあなたのことを教えてくれます。)

+0

私はあなたがこの1つで行くところを見て、私は進歩しているようです。ご協力いただきありがとうございます。ブロックをプログラミングしたらすぐにお知らせします。 – JpeckStL

+0

優秀、ありがとう。私はできるだけシンプルにしようとしました。現実にはNSDictionaryの代わりに '[String:Any]'にキャストしてキーを得るのに 'keys'を使いますが、この場合は本当に問題になりません。 – matt

+0

これはうまくいった。私はすべての値を配列に追加することができました。ありがとう。 – JpeckStL

関連する問題