Ich habe eine Android-App, die eine lokale SQLite-Datenbank von verschiedenen geografischen Standorten verwaltet.Android Synchronisierungsdaten zwischen Benutzern
Nun möchte Ich mag diese Datenbank in die „Wolke“ verbinden folgenden zu erreichen:
ein erster Download von allem, wenn die App zum ersten Mal installiert wird (oder auf Anfrage)
neue Standorte, die lokal hinzugefügt wurden, sollten automatisch in die Cloud hochgeladen werden
Die Online-Datenbank sollte gelegentlich auf neue Online-Einträge überprüft und in die lokale Datenbank heruntergeladen werden.
Ich habe eine Reihe von Problemen dabei.
Die erste ist einfach wie es geht. Ich denke, es betrifft ContentProvider und SyncProvider, aber ich weiß nicht genau, wie. Muss ich meine SQLite-Datenbank in einem contentProvider duplizieren oder habe ich im zugrunde liegenden Design einen Fehler gemacht, anstatt direkt über einen benutzerdefinierten Inhaltsanbieter eine Datenbank zu verwenden?
Zweitens können die Standortdatensätze nicht einfach von der Online-Datenbank auf- und abkopiert werden, da sie widersprüchliche ID-Nummern haben. Ich habe mehrere relationale Tabellen, wie "Tags", die eine Tag-ID mit einer Location-ID verknüpfen. Meine Tag-IDs stimmen nicht unbedingt mit den IDs anderer Benutzer überein. Gleiches mit Standort-IDs. Es wird also eine gewisse Logik bei der Übertragung geben müssen. Wo/wie soll das richtig gehandhabt werden?? Ist das die Rolle eines contentResolvers? (nicht sicher, was das wirklich ist)
Drittens, was passiert, wenn 2 Benutzer den gleichen Ort zur gleichen Zeit hinzufügen (vielleicht mit unterschiedlichen Beschreibungen und Details)? Gibt es eine Best-Practice für das Zusammenführen von diese Datensätze?
Schließlich, Was ist der einfachste Weg zum Erstellen/hosten der Online-Komponente? Dieser Teil ist alles neu für mich. Kann ich die Master-Datenbank einfach in einen öffentlichen Dropbox-Ordner legen oder muss ich eine eigene PHP-Web-App von Grund auf neu erstellen? Oder gibt es eine vorgefertigte Lösung, die diesen Teil einfacher macht?
Ich sehe die Frage wurde vor 3 Jahren gestellt und hat eine akzeptierte Antwort. Kannst du bitte näher erläutern, welche weiteren Informationen du für das Kopfgeld benötigst? – RocketRandom