さまざまな地理的な場所のローカルSQLiteデータベースを管理するアンドロイドアプリがあります。ユーザー間のAndroid同期データ
今、私は次のことを達成するために、「クラウド」にそのデータベースを接続したいと思います:
初期アプリが最初にインストールされているすべてのダウンロード(またはご要望に応じて)
- を
ローカルに追加された新しい場所は、自動的にクラウドにアップロードする必要があります(自動的に)
オンラインデータベースは、新しいオンラインエントリのために時折チェックし、ローカルデータベースにダウンロードする必要があります。
私はこれを達成するために多くの問題があります。
最初は単純にです。です。私はそれがcontentProvidersとsyncProvidersを含んでいると思うが、私はどのように正確にはわからない。 contentProviderでSQLiteデータベースを複製する必要がありますか、またはカスタムコンテンツプロバイダではなく、データベースを直接使用するために基礎となる設計で間違いを犯しましたか?
第2に、ロケーションレコードは、競合するID番号を持つため、オンラインデータベースから単純に上下にコピーすることはできません。私は、tag-idとlocation-idを関連付ける "tags"のようないくつかのリレーショナルテーブルを持っています。私のタグIDは必ずしも他のユーザータグIDと一致するとは限りません。ロケーションIDと同じです。したがって、転送にはいくつかのロジックが必要になります。 /これはどのように正しく処理されるべきですか?それはcontentResolverの役割ですか? (本当に何が本当であるか分かりません)
第3に、2人のユーザーが同じ場所を同時に(おそらく異なる説明と詳細で)追加する場合はどうなりますか? これらのレコードをマージするベストプラクティスはありますか?
最後に、オンラインコンポーネントを構築/ホストする最も簡単な方法は何ですか?この部分はすべて新しいです。 masterデータベースを公衆のDropboxフォルダに置くことはできますか、または最初からカスタムphp web-appをビルドする必要はありますか?または、この部分をより簡単にするためにパッケージ化されたソリューションがありますか?
私は3年前に質問された質問を受け、受け入れられた答えがあります。奨励金のためにもっと多くの情報を必要としているかどうかを詳しく教えてください。 – RocketRandom