iOSアプリケーションの複数のバージョンを運用中にFirebase
データモデルを変更する最も良い方法は何ですか?firebaseデータモデルを変更する(複数のアプリケーションバージョンが稼働中の場合)
真ん中に「アプリケーションサーバー」レイヤーがないため、データベースモデルの変更により、古いバージョンのアプリケーションが壊れる可能性があります。問題の
パフォーマンス関連例:私は単純に「/ポスト/」の下のポストに関連するすべてのものを保っていたバージョン1.0では
。今バージョン2.0では、Firebaseの勧告を受け取り、特定のユーザのすべての投稿をすばやく一覧表示するための '/ user-post'エンドポイントを追加したいと思います。
iOSアプリケーションのバージョン1.0を使用しているユーザーは、そのエンドポイントが存在しなかったため、 '/ user-posts'にデータを書き込んでいません。したがって、バージョン2.0を使用しているユーザーは、古いバージョンのアプリを使用しているユーザーが作成した投稿は表示されません。
理論的には、私はどこかで '/ post /'の変更を聞き、 '/ user-posts'に追加することもできます。それはあなたのアプリの異なるバージョンがたくさんある場合でも時間の経過とともに維持することは難しいようです。問題の
新機能例:
は、モバイルアプリのバージョン1.0で使用すると、「/ポスト/」に新しいブログ記事を書くとしましょう。今バージョン2.0のアプリではチーム機能を導入し、すべての投稿を '/ team/team-id/posts'にする必要があります。
バージョン2.0にアップグレードしていない人は、まだ '/ posts'に書き込みます。これらの投稿は、 '/ team/team-id/posts'から読んでいるバージョン2.0を使用している人には表示されません。
私は、両方のエンドポイントを同時に(そしてチームIDに基づいてインデックス/投稿)保持することができますが、時間の経過とともにこれは維持するのが難しいようです。
従来のソリューション:
私はジャンゴまたはExpressのようなものを使用していた場合、私はデータベースの移行を行い、その後、ブログ記事を作成するためのサーバー側のエンドポイントを更新すると思います。
これは、データベースをクライアントから変更することになります。私は理論的にはFirebase
と私のアーキテクチャにアプリケーション・サーバー層を追加することができますが、それはそれはお勧めしますように見えるしていません:https://firebase.googleblog.com/2013/03/where-does-firebase-fit-in-your-app.html
経由でメッセージ/アラートを示すことができない場合。将来は論理定数を適用し、Firebase Remote Configはデータ構造の変更の一部を緩和するための1つの方法かもしれません。あるいは、可能であれば、ユーザーに新しいバージョンへの移行を促すためのメカニズムを使用してください。おそらく新しい機能を利用できるようにすることによって... –