2017-12-18 34 views
0

POS 응용 프로그램을 만들고 싶지만 인터넷 연결이 없을 때 응용 프로그램이 작동해야합니다 (나중에 인터넷에 연결할 때 나중에 동기화가 이루어져야 함). 내 마음에 온 유일한 방법은 서버와 로컬 db 사이의 동기화입니다하지만 난 할 생각이 없거나 최선의 방법이 일을. 이 문제에 대해 몇 가지 질문이 있습니다.서버 db와 동기화 local db (Sqlite) android

  1. FCM 클라우드 메시징을 사용하면 가능합니까? 클라이언트 A가 FCM 데이터가 변경되었다고 말하면 FCM이 여러 클라이언트 (전화기)에게 사용자 (전화 소유자) 확인 (자동)없이 백그라운드에서 동기화 db를 수행하도록 알려줍니다.

  2. 또는 유일한 방법은이 방법을 사용하는 것입니다. https://github.com/codepath/android_guides/wiki/Server-Synchronization-(SyncAdapter)? 그렇다면 얼마나 자주 서버와 db 로컬을 동기화 할 수 있습니까? 3 분마다 동기화가 잘 될까요?

+0

3 분마다 동기화가 잘되지 않고 너무 자주 발생합니다. PushNotification (포인트 1)과 백업 포인트 2에 대해 w 엘. 포인트 2는 장치가 꺼져 있거나 인터넷에 연결되어 있지 않을 때 도움이됩니다. –

+0

장치에 인터넷이 연결되어 있지 않으면 FCM 메시지를 보내거나받을 수 없습니다. – theFunkyEngineer

+1

[Android 앱과 웹 서버간에 데이터 동기화] 가능한 복제본 (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 및 클라우드 기능 사용 JobSchedulers와 함께 최상의 결과를 얻을 수 있습니다.