2017-12-18 23 views
0

私はPOSアプリケーションを作成したいが、何らかの理由でアプリケーションがインターネットに接続されていないときに動作している必要があります。私の心に来た唯一の方法は、サーバーとのローカルdb間の同期ですが、私はどのようにするか、またはこれを行うための最良の方法を持っていない。私はこれについていくつかの質問があります:サーバーdbと同期するローカルdb(Sqlite)android

  1. これを行うにはFCMクラウドメッセージングを使用できますか? FCMのデータが変更されたことをクライアントAが示すと、FCMは複数のクライアント(電話)に、ユーザーの(電話所有者)確認なしに(自動的に)同期データベースをバックグラウンドで実行するように指示します。

  2. この方法を使用するのは唯一の方法ですhttps://github.com/codepath/android_guides/wiki/Server-Synchronization-(SyncAdapter)?もしそうなら、サーバとdbローカルを同期させる頻度はどれくらいですか? 3分ごとに同期していますか?

+0

3分ごとに同期がうまくない、あまりにも頻繁になります。PushNotification(ポイント1)を使用し、バックアップポイント2にw ell。ポイント2は、デバイスがオフになっているか、インターネットに接続できない場合に役立ちます。 –

+0

デバイスにインターネット接続がない場合、FCMメッセージは送受信されません。 – theFunkyEngineer

+1

[Android AppとWebサーバー間でデータを同期]の可能な複製(https://stackoverflow.com/questions/10829371/sync-data-between- android-app-and-webserver) – theFunkyEngineer

答えて

1

はい、このためにFCMリアルタイムデータベースを使用してください。 FCMは、クラウドと同様に、アプリケーションの内部でデータを管理します。そのため、JSONツリーにデータを書き込んでもインターネットに接続していない場合、データがクラウドにプッシュされます。 文書はこれを明確に述べる(「ライティングオフラインデータ」に関する最後のセクションを読む:クライアントがオンラインになる一度、あなたのクライアントがオフラインで送信されますされたときhttps://firebase.google.com/docs/database/android/read-and-write

はまた、任意のデータをデータベースに追加 - リアルタイムデータベースので、

3分ごとにサーバーシンクを使用することはできません。また、ある時点でシステムによってシステムが強制終了される可能性が高くなります。FCMとクラウド機能を使用する

関連する問題