Firebase iOS の実装では、クライアント モデルのオフライン キャッシュがサポートされていないようです。これが実際に意味することは次のとおりです。
- 認証が必要な Firebase アプリの場合、データの移動を開始する前に、最初に認証を行い、Firebase がログインを完了するのを待つ必要があります (ユーザー ID の確認、ソケットのオープンなど)。少なくともここフィンランドでは、ネットワークの状態にもよりますが、これには 1 ~ 8 秒 (通常は 2 ~ 5 秒) かかります。
- 認証後、Firebase は最初にデータの初期セットをダウンロードし、クライアント キャッシュを初期化します。これを実行する時間は、リスナーを追加するデータのサイズによって異なりますが、通常は非常に高速です。
ここでの問題は、Firebase を使用してメッセージング アプリなどを実装している場合、バックエンド サーバーとの実際の接続が確立される前に、以前にキャッシュされたバージョンのメッセージ スレッドとメッセージをユーザーに表示したい可能性が高いことです。設立。
これを適切に実装するには、次の処理が必要になると思います。
- クライアント側モデル <-> Firebase JSON マッピング (これには Mantle を使用します)
- クライアント側モデルをディスクに永続化する (NSKeyedArchiver や Core Data などを使用した手動実装?)
- 接続が利用可能な場合に、ディスク上のモデルをメモリ内の Firebase にリンクされたモデルと同期する (手動実装?)
2) と 3) を達成するための解決策 (自社またはサードパーティ) を思いついた人はいますか?