json Datenformat in Firebase - werden Arrays unterstützt? Und / Oder, wenn nur Objekte unterstützt werden, können Wörterbücher mit ganzen Zahlen nummeriert werden?

8

Ich bastle mit Firebase und bin neugierig auf die Datenstruktur. Durch das Durchsuchen meiner Datenbank kann Firebase die Struktur und Daten in meiner Datenbank ändern. Aber es scheint, dass Firebase nur Objekte (und Wörterbücher für Listen) unterstützt.

Ich möchte wissen, ob Arrays unterstützt werden. Ich würde auch gerne wissen, ob Dictionary-Elemente mit Ganzzahlen benannt werden können - die Firebase-Schnittstelle fügt nur Strings als Namen ein, was mich besorgt über die Bestellung von Datensätzen macht.

Hier ist ein Beispiel für json, das über die Firebase-Schnittstelle erstellt wurde:

%Vor%

Offensichtlich möchte ich für meine Listen, dass die Wörterbuch-Elementnamen ganze Zahlen sind, damit ich sicherstellen kann, dass die Sortierung korrekt ist.

    
Reinsbrain 07.07.2012, 17:07
quelle

2 Antworten

12

Sie können Arrays in Firebase speichern. Zum Beispiel:

%Vor%

Javascript Arrays sind im Wesentlichen nur Objekte mit numerischen Schlüsseln. Beim Abrufen von Daten erkennen wir automatisch, wenn ein Firebase-Objekt nur numerische Schlüssel enthält, und geben in diesem Fall ein Array zurück.

Beachten Sie, dass zum Speichern einer Liste von Daten, an die sich viele Personen anhängen können, ein Array keine gute Wahl ist, da mehrere Personen, die auf denselben Index im Array schreiben, Konflikte verursachen können. Stattdessen haben wir eine "Push" -Funktion, die eine chronologisch geordnete eindeutige ID für Ihre Daten erstellt.

Wenn Sie das Array zum Bestellen von Daten verwenden möchten, können Sie dies auch mit unseren Prioritäten tun. Siehe die Dokumente .

    
Andrew Lee 08.07.2012, 19:43
quelle
3

Die Firebase-Dokumente haben einen ziemlich guten Abschnitt darüber, wie Sie Ihre Daten bestellen: Bestelldaten .

Genau wie JSON-Felder können Firebase-Felder nur mit Strings benannt werden. Es klingt wie das, wonach Sie suchen, ist setWithPriority() , das sortierbare Prioritätsdaten an Ihre Felder anfügt, oder push() , was garantiert, dass Ihre Felder eindeutige, chronologisch geordnete Namen erhalten. (Mehr zu Listen und push() hier .)

Sie können auch push() oder set() Arrays verwenden. Zum Beispiel

%Vor%

führt zu einem Baum, wie Sie es erwarten würden. MyUser erhält ein Kind mit einem eindeutigen Namen, das die Kinder "0":"cakes" und "1":"bulldozers" hat.

    
bennlich 07.07.2012 18:44
quelle

Tags und Links