2016-10-24 4 views
0

Ich habe ein Array ohne Schlüssel. Wie kann ich ein Element an das Keyless Array anhängen?An Firebase-Array ohne Schlüssel anhängen

favorites: 
- 0 
    | 
    -- name: "bs41" 
- 1 
    | 
    -- name: "uie" 

So würde mein Ergebnis sein:

favorites: 
- 0 
    | 
    -- name: "bs41" 
- 1 
    | 
    -- name: "uie" 
- 2 
    | 
    -- name: "pts4" 

Antwort

1

Ihre beste Ansatz wäre hier eine Transaktion.

Aber wie immer: Es gibt viele Gründe, warum Firebase empfiehlt, Arrays zu verwenden.

Zum Beispiel: Kann der gleiche Wert in favorites zweimal angegeben werden? Es besteht die Möglichkeit, dass jeder Benutzer jeden Favoriten nur einmal angeben kann. Eine der nächsten Fragen in diesem Fall lautet also: Wie kann ich doppelte Werte in diesem Firebase-Array verhindern? Und die Antwort darauf wird wieder sein: mit einer Transaktion.

Transaktionen beeinträchtigen die Leistung und Skalierbarkeit Ihrer Anwendung; und es bedeutet auch, dass Ihre App nicht funktioniert, wenn der Benutzer offline ist. Wann immer Sie eine Transaktion benötigen, lohnt es sich zu fragen, ob es ein Datenmodell gibt, das den gleichen Anwendungsfall durchführt, der keine Transaktion erfordert.

Zum Speichern Favoriten, die so einfach wie setzen Sie die Werte in die Tasten der Sammlung sein könnte:

favorites: 
    "bs41": true 
    "uie": true 
    "pts4": true 

Jetzt haben Sie eine automatische Garantie, dass jeder Lieblings Wert nur einmal vorhanden sein kann. Hinzufügen eines neuen Elements ist auch unglaublich einfach: ref.child("favorites").child("newfav").setValue(true).

Das Datenmodell, das ich gerade geteilt habe, ist, wie Sie ein Set in Firebase modellieren. Meiner Erfahrung nach, wenn Sie ein Array/eine Liste haben und prüfen, ob es einen bestimmten Wert enthält, bevor Sie ein neues Element hinzufügen, sollten Sie stattdessen häufig ein Set verwenden.