So hängen Sie Daten an ein Array in Firebase an?

8

Ich habe ein Array namens subscribedTo in meinem Benutzerknoten. Nun möchte ich ein push ID's an dieses Array anhängen, wenn ein Benutzer angemeldet ist.

Aber die push ID werden ersetzt anstatt angehängt zu werden.

Wie kann ich die Push-IDs an das Array anhängen?

Schema

%Vor%

CODE

%Vor%     
user3467240 16.04.2016, 03:01
quelle

1 Antwort

9

Wenn Sie updateChildren() mit einer Map aufrufen, übernimmt Firebase jeden Schlüssel und ersetzt das Objekt an dieser Position durch den Wert aus der Map.

Die Firebase-Dokumentation zu updateChildren() sagt dazu:

  

Bei einem einzelnen Schlüsselpfad wie alanisawesome aktualisiert updateChildren() nur Daten auf der ersten untergeordneten Ebene und alle Daten, die über die erste untergeordnete Ebene hinaus übergeben werden, werden als setValue () - Operation behandelt.

In diesem Fall ersetzen Sie den gesamten Inhalt von "/" + Constants.FIREBASE_LOCATION_USERS + "/" + mEncodedEmail + "/subscribedTo" .

Die Lösung besteht darin, entweder PROG_ID Teil des Schlüssels in der Karte zu machen:

%Vor%

Oder rufen Sie einfach setValue() an der unteren Position in der JSON-Struktur auf:

%Vor%

Sie werden feststellen, dass ich in beiden Fällen Ihr Array zugunsten der Empfehlung entfernt habe Struktur für einen so genannten Index :

%Vor%     
Frank van Puffelen 16.04.2016, 03:32
quelle