Eine Nachricht zu einer Liste in der Firebase-Datenbank hinzufügen

Ich habe die folgende Firebase-Datenbankstruktur.uIds ist eine Art vonList<String>. Ich versuche eine weitere UID unter @ hinzuzufüguIds mit einem inkrementierten Index.setValue() undupdateChildren() würde erfordern, dass ich vorhandene Daten abrufe, undpush() fügt anstelle eines inkrementierten Index ein Element mit einer zufällig generierten Zeichenfolge als Schlüssel hinzu. Gibt es eine einfachere Möglichkeit, die vorhandenen Daten nicht abzurufen? Vielen Dank

  "requests" : {
    "request001" : {
      "interests" : [ "x" ],
      "live" : true,
      "uIds" : [ "user1" ]  // <---- from this
    },
    "request002" : {
      "interests" : [ "y" ],
      "live" : true,
      "uIds" : [ "user2" ]
    }
  }
--------------------------------

Bearbeiten

Sorry für die Unklarheit. Lassen Sie mich das näher erläutern. Angenommen, ich habe die obige Datenbank und möchte sie auf die folgende aktualisieren.

  "requests" : {
    "-KSVYZwUQPfyosiyRVdr" : {
      "interests" : [ "x" ],
      "live" : true,
      "uIds" : [ "user1", "user2" ]   // <--- to this
    },
    "-KSl1L60g0tW5voyv0VU" : {
      "interests" : [ "y" ],
      "live" : true,
      "uIds" : [ "user2" ]
    }
  }

ishmaelMakitlas Vorschlag,mDatabase.child("requests").child("request001").setValue(newRequest), überschreibt die "request001" mit "newRequest". Also sollte ich die vorhandenen Daten von "request001" abrufen und "user2" zur Liste hinzufügenuIds. Es wird ungefähr so aussehen:

mDatabase.child("requests").child("request001").addListenerForSingleValueEvent(new ValueEventListener() {
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        Request newRequest = dataSnapshot.getValue(Request.class);
        newRequest.uIds.add("user2");
        mDatabase.child("requests").child("request001").setValue(newRequest);
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {}

});

Aber ich frage mich, ob dieser Prozess notwendig ist, da ich versuche, einfach ein Element zur Liste hinzuzufügenuIds.

Antworten auf die Frage(8)

Ihre Antwort auf die Frage