ホームページ > ウェブフロントエンド > jsチュートリアル > Firebase の非正規化でデータの一貫性を維持するにはどうすればよいですか?

Firebase の非正規化でデータの一貫性を維持するにはどうすればよいですか?

Linda Hamilton
リリース: 2024-12-12 13:13:18
オリジナル
576 人が閲覧しました

How to Maintain Data Consistency in Firebase Denormalization?

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 サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート