Ich bin nicht sicher über Java, sondern auch für Web-Anwendung, können Sie etwas wie folgt verwenden:
Ich wollte eine wiederverwendbare Funktion erstellen jedes Objekt unter einem hinzuzufügen/zu speichern Root-Knoten (auch wenn das ein Array von Daten auf einer beliebigen Ebene innerhalb des Objekts hat). Also habe ich das erfunden. (Ich bin nicht sicher, ob entspricht den besten Praktiken, aber es funktionierte ziemlich glatt)
SaveWholeData: function(sKey, oVal, bGenKey) {
bGenKey = bGenKey === undefined ? true: bGenKey;
var oOriginalProperty = angular.copy(oVal);
for (var property in oVal) {
if (oVal.hasOwnProperty(property) && oVal[property] instanceof Array) {
console.log(property);
oVal[property] = "$|$";
}
}
var sOwnRef = SaveDataByKey(sKey, oVal, bGenKey);
for (var property in oVal) {
if (oVal.hasOwnProperty(property) && oVal[property] === "$|$") {
oVal[property] = oOriginalProperty[property];
var updatedReference = sOwnRef + "/" + property;
SaveWholeData(updatedReference, oVal[property], false);
}
}
return true;
},
SaveDataByKey: function(sKey, oVal, bGenKey) {
if (bGenKey) {
var newPostKey = firebase.database().ref(sKey).push().key;
oVal.genKey = newPostKey;
firebase.database().ref(sKey).child(newPostKey).set(oVal);
return sKey + "/" + newPostKey;
}else{
firebase.database().ref(sKey).set(oVal);
return sKey;
}
}
So zu neuen Benutzer unter root hinzufügen users
, rufen Sie:
SaveWholeData("users", oUserInfo, true);
und Update bestehende Benutzer:
SaveWholeData("users"+"/"+ oUserInfo.genKey, oUserInfo, true);
Danke für die Antwort, wird dies als 0 sparen: John, 1: Tim ... oder John: John, Tim: Tim ...? –
Danke.wirklich hilfreich –
Diese Antwort enthielt die meisten Informationen, nach denen ich gesucht habe. Danke David! –