Tengo una aplicación de Android que mantiene una base de datos SQLite local de diferentes ubicaciones geográficas.Android sincronización de datos entre los usuarios
Ahora me gustaría conectar dicha base de datos a la "nube" para lograr lo siguiente:
una descarga inicial de todo, cuando se instala la primera aplicación (o bajo petición)
las nuevas ubicaciones que se han agregado localmente deben cargarse en la nube (automáticamente)
la base de datos en línea debe verificarse ocasionalmente para nuevas entradas en línea y descargarse a la base de datos local.
Tengo un número de problemas para lograr esto.
La primera es simplemente cómo hacerlo. Creo que implica contentProviders y syncProviders, pero no estoy exactamente seguro de cómo. ¿Debo duplicar mi base de datos SQLite en un contentProvider, o me he equivocado en el diseño subyacente para usar una base de datos directamente, en lugar de hacerlo a través de un proveedor de contenido personalizado?
En segundo lugar, los registros de ubicación no se pueden copiar simplemente hacia arriba y hacia abajo desde la base de datos en línea, ya que tendrán números de identificación conflictivos. Tengo varias tablas relacionales, como "etiquetas" que relacionan una ID de etiqueta con una ID de ubicación. Mis identificadores de etiquetas no necesariamente coincidirán con los identificadores de etiquetas de otros usuarios. Lo mismo con los identificadores de ubicación. Entonces será necesario que haya cierta lógica involucrada en la transferencia. ¿Dónde/cómo debe manejarse adecuadamente? ¿Es esa la función de un contentResolver? (No estoy seguro de lo que es realmente)
En tercer lugar, ¿qué sucede en el caso de que 2 usuarios agreguen la misma ubicación al mismo tiempo (quizás con descripciones y detalles diferentes)? ¿Existe una mejor práctica para fusionar estos registros?
Finalmente, ¿cuál es la forma más sencilla de construir/alojar el componente en línea? Esta parte es nueva para mí. ¿Puedo poner la base de datos maestra en una carpeta pública de Dropbox, o necesito crear una aplicación web de php personalizada desde cero? ¿O hay una solución preempaquetada que facilitaría esta parte?
Veo que la pregunta fue hecha hace 3 años y tiene una respuesta aceptada. ¿Puede por favor detallar qué más información necesita para la recompensa? – RocketRandom