2016-03-31 6 views
2

firebaseを使用してデータを収集していますが、iPhoneアプリで使用可能な形式でデータを取得しようとしています。私はSwiftにアプリを書いている。速攻を使用してiOSアプリのfirebaseデータを取得する

データは日付文字列でグループ分けされ、次にランダムキーでグループ化され、次にデータがグループ化されます。例:

{ 
    "20160304" : { 
    "-KC-aOwSWpt4dlYmjJE4" : { 
     "coordinates" : "-37.7811465912404, 145.005993055861", 
     "event" : "Test event", 
     "time" : "2016-03-04 07:48:43 +0000" 
    }, etc... 

私はこれまでのところ、このようなデータをつかんだ:

ref.queryOrderedByKey().observeEventType(.ChildAdded, withBlock: { 
     snapshot in 
     //print(snapshot.key) // date 
     print(snapshot.value) 
    }) 

そして、それは、コンソールに次のようなものを返します。

{ 
"-KD8O0gL7gDGu_hRyFzQ" =  { 
    coordinates = "-37.7540958861003, 145.001224694195"; 
    event = "Test event"; 
    time = "2016-03-18 11:02:32 +0000"; 
}; etc... 

誰がどのように私ができる知っています意味のあるデータに、ランダムキーを過ぎて次のレベルに下がりますか?私はjavascriptのためにこれで前に問題があったが、それは私を混乱させるswiftを使用しています。 定義された日付(最上位)の詳細データ(最下位レベル)を取得できるようにしたいと考えています。

+0

私が聞いても:あなたは、各下に複数のランダムな鍵を持っています日付ノード?それをスワップして、ノード名をランダムキーとし、子として格納された日付にすると、いくつかの利点があります。日付は時間子ノードにすでに含まれているため、重複する可能性があります。あなたは「時間」で質問しますか?ありがとう。 – Jay

答えて

2

このコード

let jsonLocations = snapshot.valueInExportFormat() as! NSDictionary 
let keys = jsonLocations.allKeys 

for key in keys { 
    let json = jsonLocations[key] as! [String: AnyObject] 
    self.sections.append(Location(JSONObject: json)) 
} 
+0

それは 'jsonSections'が気に入らないのですか? – Richie

+0

@リーチ申し訳ありませんが、私は私の答えを編集しました。 –

+0

@リーチあなたはそれぞれの "json"に同じメソッドを使うことができ、ちょうど1レベル深く入れます –

2

を試してみて、私は普通につながる、できるだけ長くFDatasnapshotの方法に固執してみてください:

ref.queryOrderedByKey().observeEventType(.ChildAdded, withBlock: { snapshot in 
    for child in snapshot.children { 
     print(child.key); // -KC-aOwSWpt4dlYmjJE4 
     print(child.childSnapshotForPath("event").value) 
    } 
}); 
関連する問題