Ho un'app per Android che gestisce un database SQLite locale di diverse posizioni geografiche.Dati di sincronizzazione Android tra gli utenti
Ora vorrei collegare detta banca dati nella "nuvola" per realizzare il seguente:
una scarica iniziale di tutto, quando l'applicazione viene prima installato (o su richiesta)
nuove posizioni che sono state aggiunte localmente devono essere caricate nel cloud (automaticamente)
il database online deve essere controllato occasionalmente per le nuove voci online e scaricato nel database locale.
Ho un numero di problemi nel realizzare questo.
Il primo è semplicemente come farlo. Penso che coinvolga contentProviders e syncProviders, ma non sono esattamente sicuro di come. Devo duplicare il mio database SQLite in un contentProvider o ho fatto un errore nella progettazione sottostante per utilizzare direttamente un database, invece che attraverso un fornitore di contenuti personalizzato?
In secondo luogo, i record di posizione non possono essere semplicemente copiato su e giù dalla banca dati on-line, dato che avranno numeri ID contrastanti. Ho diverse tabelle relazionali, come "tag" che riguardano un id-tag con un id-location. I miei id-tag non corrisponderanno necessariamente ai tag-id di altri utenti. Lo stesso con gli ID di posizione. Quindi ci sarà bisogno di essere coinvolti in qualche logica nel trasferimento. Dove/come dovrebbe essere gestito correttamente? È questo il ruolo di contentResolver? (Non sono sicuro di cosa si tratta in realtà)
In terzo luogo, che cosa succede nel caso in cui 2 agli utenti di aggiungere la stessa posizione nello stesso momento (magari con descrizioni diverse e particolari)? Esiste una best practice per unire questi record con?
Infine, qual è il modo più semplice per costruire/host il componente online? Questa parte è completamente nuova per me. Posso semplicemente inserire il database master in una cartella pubblica di Dropbox o devo creare un'app web PHP personalizzata da zero? O esiste una soluzione preconfezionata che renderebbe più semplice questa parte?
Vedo che la domanda è stata posta 3 anni fa e ha una risposta accettata. Puoi per favore approfondire quali ulteriori informazioni hai bisogno per la taglia? – RocketRandom