2016-05-24 1 views
0

Ich habe versucht, durch meine Firebase-Datenbank mit ihren Leitfäden abzufragen, aber ich kann die Ergebnisse nicht angemessen zurückgeben. Wenn jemand darauf hinweisen kann, was ich falsch mache oder korrigieren, wird es sehr hilfreich sein.Was ist der genaue Weg von Firebase (3.2.0) Abfragen mit Swift (2.0)?

Hier sind meine Code

let ref = DataService.dataService.BASE_REF 
    let myQuery = (ref.child("testing")).queryOrderedByKey() 
    let MyQuery1 = (ref.child("testing")).queryOrderedByValue() 
    let MyQuery2 = (ref.child("testing")).queryEqualToValue("Alphaa") 
    let MyQuery3 = (ref.child("testing")).queryEqualToValue("Alphaa", childKey: "Alpha") 
    myQuery.observeSingleEventOfType(.Value, withBlock: { 
     snapshot in 
     print("Ordered By Key") 
     print(snapshot.value) 
    }) 

    MyQuery1.observeSingleEventOfType(.Value, withBlock: { 
     snapshot in 
     print("Ordered by Value") 
     print(snapshot.value) 
    }) 

    MyQuery2.observeSingleEventOfType(.Value, withBlock: { 
     snapshot in 
     print("Value Equal") 
     print(snapshot.value) 
    }) 

    MyQuery3.observeSingleEventOfType(.Value, withBlock: { 
     snapshot in 
     print("Ordered by Value & Key") 
     print(snapshot.value) 
    }) 

Hier ist das Ergebnis Bildschirm Beide Reihenfolge von Schlüssel und Wert es nicht aussortieren Schnipsel.

Optional({ 
    Alpha = Gammaa; 
    Alright = 24; 
    Beta = Betaa; 
    Delta = Deltaa; 
    Epsilon = Epsilonn; 
    Eta = Etaa; 
    Gamma = Alphaa; 
    Iota = Iotaa; 
    Lets = 3; 
    Okay = 1; 
    Theta = Thetaa; 
    Zeta = Zetaa; 
    beep = 4; 
    boop = 11; 
}) 

Beide Wert Equal & Geordnet nach Wert & Key geben Sie mir Optional (null)

JSON Tabellenwerte

"testing" : { 
    "Alpha" : "Gammaa", 
    "Alright" : 24, 
    "Beta" : "Betaa", 
    "Delta" : "Deltaa", 
    "Epsilon" : "Epsilonn", 
    "Eta" : "Etaa", 
    "Gamma" : "Alphaa", 
    "Iota" : "Iotaa", 
    "Lets" : 3, 
    "Okay" : 1, 
    "Theta" : "Thetaa", 
    "Zeta" : "Zetaa", 
    "beep" : 4, 
    "boop" : 11 
    } 

Ich versuche, gleiche Werte zurückgeben oder sie vom Server sortieren Ende stattdessen auf dem Client-Ende.

+1

können wir Sie geben die Json, auf dem Sie testen? es wird einfacher für uns zu sehen .. (die firebase tree) – ismael33

+0

Oh sorry ich habe vergessen, das aufzustellen, ich habe das jetzt getan :) – Lobo

+1

Nun, um zu beginnen, sind die Abfragen nicht wirklich eingerichtet, um Ihre Daten zu entsprechen Struktur. Außerdem wird queryEqualToValue ("Alphaa") kein Ergebnis haben, da es keine 'testenden' Knoten gibt, die gleich 'Alphaa' sind - Sie könnten jedoch nach/testen/Alpha ist gleich Gammaa mit einer tiefen Abfrage. Wenn Sie das erwartete Ergebnis für jede Abfrage klar darlegen können oder was Sie erreichen möchten, können wir besser eine Antwort formulieren. – Jay

Antwort

1

ich weiterhin Tests und verändert die Art, wie ich mein Ergebnis bekommen würde durch

MyQuery1.observeSingleEventOfType(.Value, withBlock: { 
      snapshot in 
      print("************") 
      print("Ordered by Value") 
      for snap in snapshot.children { 
       print(snap); 
      } 
     }) 

das gab mir das Ergebnis i für Werte gesucht: D und auch für Schlüssel

Ordered by Value 
Snap (Okay) 1 
Snap (Lets) 3 
Snap (beep) 4 
Snap (boop) 11 
Snap (Alright) 24 
Snap (Gamma) Alphaa 
Snap (Beta) Betaa 
Snap (Delta) Deltaa 
Snap (Epsilon) Epsilonn 
Snap (Eta) Etaa 
Snap (Alpha) Gammaa 
Snap (Iota) Iotaa 
Snap (Theta) Thetaa 
Snap (Zeta) Zetaa