2017-12-04 4 views
0

Ich habe diese json DatenbankUnity C# Iterate über einen Firebase Snapshot

{ 
"shops" : { 
     "7" : { 
      "cod1" : { 
      "name" : "name3", 
      "description" : "xxx", 

      }, 
      "cod2" : { 
      "name" : "name2", 
      "description" : "xxx", 

      }, 
      "cod3" : { 
      "name" : "name1", 
      "description" : "xxx", 

      }, 

ich über den Schnappschuss iterieren müssen COD1, cod2, cod3 und ich muss etwas tun, für jeden dieser Codes zu bekommen, dass ich nicht vorher weiß

public void load(string city){ 
//city is number 7 in this case; 
     Firebase.Auth.FirebaseUser user = auth.CurrentUser; 
     FirebaseDatabase.DefaultInstance 
         .RootReference.Child ("shops").Child (city) 
      .GetValueAsync().ContinueWith (task => { 
      if (task.IsFaulted) { 
       // Handle the error... 
      } else if (task.IsCompleted) { 
       DataSnapshot snapshot = task.Result; 
       int i = 0; 

       foreach (DataSnapshot shop in snapshot.Children) { 
         debug.text = "\nstarting with #" + i.ToString() + ": " + shop.Key+";\n"; 

         i++; 
       } 

      } 
     }); 

ich debug.text müssen zeigen „beginnend mit Nummer 1: COD1“ und dann wieder mit cod2 und cod3

Jetzt bekomme ich so etwas wie „Beginnend mit # 1: 7“ Das ist der Schlüssel von t er Elternteil dieser Codes

Gibt es eine Möglichkeit, diese Codes zu bekommen?

Antwort

0

Nun, zunächst einmal ist Ihr JSON nicht wirklich so formatiert, wie es sein sollte. Wenn Daten genau zurückgegeben werden sollen, sollte "Shops" ein Array und kein Objekt sein. Wie so:

"shops" : [ 
    "cod1" : { 
     "name" : "name3", 
     "description" : "xxx" 
     }, 
     "cod2" : { 
     "name" : "name2", 
     "description" : "xxx" 
     }, 
     "cod3" : { 
     "name" : "name1", 
     "description" : "xxx" 
     } 
] 

Derzeit "Geschäfte" ist ein Objekt, das ein untergeordnetes Objekt "7" hat, das ist die Mutter von COD1, cod2 und cod3. Aus diesem Grund sehen Sie auch "7".