Aufrechterhaltung der Datenkonsistenz bei der Firebase-Denormalisierung
Wenn Sie Daten an mehreren Standorten in Firebase schreiben, um sie schneller abzurufen, ist es wichtig, die Datenkonsistenz über alle hinweg aufrechtzuerhalten Standorte. Hier sind zwei Ansätze, um dies zu erreichen:
Atomic Writes
Firebase bietet jetzt eine Möglichkeit, atomare Schreibvorgänge auf mehreren Pfaden gleichzeitig durchzuführen. Mit der multipathWrites-Methode können Sie mehrere Standorte mit einem einzigen Vorgang aktualisieren.
let updates = {}; // all paths to be updated and their new values updates['users/'+uid+'/name'] = name; var query = ref.child('messages').orderByChild('user').equalTo(uid); query.once('value', function(snapshot) { snapshot.forEach(function(messageSnapshot) { updates['messages/'+messageSnapshot.key()+'/username'] = name; }) ref.update(updates); });
Eventuelle Konsistenz
Bei diesem Ansatz werden die duplizierten Daten asynchron aktualisiert. Aktualisieren Sie zunächst die primäre Datenquelle (z. B. das Profil des Benutzers). Fragen Sie dann alle Instanzen der duplizierten Daten ab (z. B. Nachrichten, die den Namen des Benutzers enthalten) und aktualisieren Sie sie einzeln.
ref.child('users').child(uid).update({ name: name }); var query = ref.child('messages').orderByChild('user').equalTo(uid); query.once('value', function(snapshot) { snapshot.forEach(function(messageSnapshot) { messageSnapshot.update({ username: name }); }) });
Tipps zur Datenkonsistenz
Das obige ist der detaillierte Inhalt vonWie kann die Datenkonsistenz bei der Firebase-Denormalisierung aufrechterhalten werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!