<概要>
スナップショットとは、ドキュメントやクエリ結果のある瞬間における状態を表現したデータです。通常は、ドキュメントを取得した瞬間やクエリによるデータ取得が完了した瞬間にスナップショットが作成されます。Firestore上のデータを参照する際は、スナップショットを通じて行います。
fromCache
スナップショットに含まれるドキュメントに、ローカルキャッシュから取得したものが含まれているかどうかを判定するフラグです。キャッシュから取得したドキュメントは整合性が損なわれている可能性があるため、キャッシュからデータを取得した場合になにか特別な処理を挟むケースで使います。
hasPendingWrite
スナップショットに含まれるドキュメントに、サーバーに反映されていない書き込みオペレーションの結果が含まれていることを示すフラグです。後述するリアルタイム・リスナーを利用すると、書き込みのレイテンシーを削減する目的でサーバーに反映される前の変更がリスナーに通知されます。このとき受信するスナップショットのメタデータでは、hasPendingWriteの値がtrueになっています。サーバーにコミットされる前のデータをスキップしたい事情がある場合などはこのフラグに基づいて処理を分岐します。