Ich verwende eine SortedList, um meine Artikel im RecyclerView zu sortieren. Also muss ich sie durch eine eindeutige ID vergleichen, und Firebase bietet genial generierte Schlüssel dafür.Voreingestellte Objekt-ID beim Drücken auf Firebase
Um neuen Wert auf eine Datenbank schiebt ich laufen müssen:
public void addAdvert(Advert advert, String userId) {
String id = reference.child(NODE_USERS)
.child(userId)
.child(NODE_ITEMS)
.push()
.getKey() //execute this to just get the id
advert.setId(id);
getCurrentItemNode().child(advert.getId()).setValue(advert);
}
jetzt in der Datenbank meine Anzeige Artikel ist voll ausgestattet mit Id und Knotenschlüssel ausgestattet.
Aber ich neugierig, kann ich schreiben gerade so etwas wie
reference.child(NODE_USERS)
.child(userId)
.child(NODE_ITEMS).push().setValue(advert);
Und das gleiche Ergebnis erzielen: beide Schlüssel und ID werden in der Datenbank festgelegt.
Ist das ein Fehler @puf? Scheint, dass 'String id = reference.child (NODE_USERS) .getKey()' würde zurückgeben, was 'NODE_USERS' ist; vielleicht meintest du 'reference.push(). getKey()'? Oder vielleicht bin ich verwirrt. –
Yup, das war in der Tat ein Copy/Paste/Modified-the-wrong-Teil. Danke für den Fang! –
Vielen Dank für Ihre Antwort. Ich möchte den Schlüssel im Element speichern, um das Element eindeutig zu machen, wenn ich es das nächste Mal aus der Datenbank holen werde. –