2016-08-05 4 views
0

Firebaseデータベースからスナップショットから特定のデータを取得する方法、これは私のコードと私がrecievingてるです:スイフト。私は私のFirebaseデータベースからのスナップショットが供給していオーケー

rootRef.child("Battles").queryOrderedByChild("Player1").queryEqualToValue(CurrentFBID).observeSingleEventOfType(.Value, withBlock: { snap in 
    if (snap.value is NSNull) { 
     print("none") 
    } else { 
     print(snap.value) 
    } 
}) 

Recieving:

{

"04361D33-AC99-4795-BB9A-0B0879882251" =

{

BattleUUID = "04361D33-AC99-4795-BB9A-0B0879882251";

Player1 = 10210238266903604;

Player2 = 12121212121212;

Score = "0-0";

Turn = 1;

};

}

私のJSONツリー:

{ 
    "Battles" : { 
    "04361D33-AC99-4795-BB9A-0B0879882251" : { 
     "BattleUUID" : "04361D33-AC99-4795-BB9A-0B0879882251", 
     "Player1" : "10210238266903604", 
     "Player2" : "12121212121212", 
     "Score" : "0-0", 
     "Turn" : "1" 
    }, 
    "07261D43-GC59-4795-BB9A-0B0871635751" : { 
     "BattleUUID" : "04361D33-AC99-4795-BB9A-0B0879882251", 
     "Player1" : "1342536342535", 
     "Player2" : "1524343564", 
     "Score" : "3-1", 
     "Turn" : "5" 
    } 
    } 
} 

は、私がどのように分割することができるように一例としてデータ:

let player1 = snap.Player1.value 
let player2 = snap.Player2.value 
let battleUUID = snap.BattleUUID.value 
let score = snap.Score.value 
let turn = snap.Turn.value 
+0

だからあなたのクエリは何ですか?あなたは 'player1'と' player2'データだけを必要とし、残りは欲しくないのですか? – triandicAnt

+0

私はちょうど私の質問を更新しました、私の悪い説明には申し訳ありません。私はすべてのデータを必要としますが、データを別の定数に分割したいのですが – Benja0906

答えて

0

すべてのデータを一度に受信しています。 snapにはchildrenが含まれ、各childは特定のバトルに属します。 は、データはとしてあなたがsnapchildrenを反復する必要があり、それぞれの子に対応するには:

for item in snap.children { 
    let player1 = item.value?["Player1"] as! String 
    let player2 = item.value?["Player2"] as! String 
    let battleUUID = item.value?["BattleUUID"] as! String 
    let score = item.value?["Score"] as! String 
    let turn = item.value?["Turn"] as! String 
} 
+0

私はエラーを返します: "致命的なエラー:予期せぬことにnilが見つかったときにオプション値を外しています – Benja0906

+0

あなたの' '' nil''のように '! 'のような'? 'を使用しようとします - ' let player1 = item.value?["player1"]?String' – triandicAnt

+0

これは何もしないで "nil"を返すだけです – Benja0906

関連する問題