2016-08-05 27 views
0

Okay bekomme ich einen Schnappschuss von meiner Firebase Datenbank bin recieving, dies ist mein Code ist und was ich recieving:Schnell. Wie bestimmte Daten aus einem Schnappschuss von Firebase Datenbank

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;

};

}

Mein JSON Baum:

{ 
    "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" 
    } 
    } 
} 

wie kann ich geteilt, dass die Daten so als Beispiel:

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

Also, was ist Ihre Frage? Sie wollen nur 'player1' und' player2' Daten und nicht den Rest? – triandicAnt

+0

Ich habe gerade meine Frage aktualisiert, tut mir leid für meine schlechte Erklärung. Ich möchte alle Daten, aber ich möchte die Daten in verschiedene Konstanten teilen – Benja0906

Antwort

0

Sie erhalten alle Daten auf einmal. Die snap enthält children und jede child gehört zu einer bestimmten Schlacht. Um Daten für jedes Kind entsprechend müssen Sie über children von snap iterieren:

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

Wenn ich das tue, gibt ich einen Fehler: "fataler Fehler: unerwartet gefunden Nil beim Auflösen eines optionalen Werts – Benja0906

+0

Es liegt daran, dass eine Ihrer' Eigenschaft' ist 'nil' versuchen Sie' '' 'anstelle von'! 'like -' let player1 = item.value ["player1"] als? String' – triandicAnt

+0

Jetzt gibt es einfach "nil" zurück, nicht was es tun soll – Benja0906