在Firebase 非規範化中保持資料一致性
將資料寫入多個位置的Firebase 以便更快地檢索時,保持更快地檢索時,保持所有位置的資料一致性至關重要地點。以下是實現此目的的兩種方法:
原子寫入
Firebase 現在提供了一種同時對多個路徑執行原子寫入的方法。使用 multipathWrites 方法,您可以透過單一操作更新多個位置。
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); });
最終一致性
此方法涉及非同步更新重複資料。首先,更新主要資料來源(例如使用者的個人資料)。然後,查詢重複資料的所有實例(例如包含使用者名稱的消息)並一一更新。
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 }); }) });
資料一致性提示
以上是如何在 Firebase 非規範化中保持資料一致性?的詳細內容。更多資訊請關注PHP中文網其他相關文章!