Firebase 非正規化でのデータの一貫性の維持
より高速に取得するために複数の場所で Firebase にデータを書き込む場合、すべての場所でデータの一貫性を維持することが重要です。場所。これを実現するための 2 つのアプローチを次に示します。
アトミック書き込み
Firebase では、複数のパスに対してアトミック書き込みを同時に実行する方法が提供されるようになりました。 multipathWrites メソッドを使用すると、1 回の操作で複数の場所を更新できます。
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); });
結果整合性
このアプローチには、複製されたデータの非同期更新が含まれます。まず、主要なデータ ソース (ユーザーのプロフィールなど) を更新します。次に、重複したデータのすべてのインスタンス (ユーザー名を含むメッセージなど) をクエリし、それらを 1 つずつ更新します。
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 中国語 Web サイトの他の関連記事を参照してください。