Comment synchroniser la firebase database Android avec un serveur SQL en ligne?

Je développe une application Android qui stocke différents types de données dans le SQLite intégré fourni par la plate-forme Android.

Dans l’application, j’ai placé un bouton “Sync” qui est censé synchroniser les données entre la firebase database SQLite locale, avec une firebase database SQL Server en ligne sur mon serveur.

Quelle est la solution de contournement pour gérer cela? Cette fonctionnalité se trouve dans Google Agenda, où vous pouvez afficher les événements du calendrier sur votre mobile. Lorsque vous ajoutez un nouvel événement et synchronisez les données, vous pouvez également afficher les données mises à jour sur votre compte en ligne.

Remarque: je ne souhaite pas centraliser ma firebase database en ligne, car je souhaite également donner aux utilisateurs mobiles la possibilité d’utiliser l’application sans connexion Internet.

Vous devriez regarder le projet SampleSyncAdapter dans les démos du SDK Android ( Transfert de données à l’aide d’adaptateurs de synchronisation ). Il vous montre comment faire de la synchronisation “style Android”, ce qui ne nécessite aucune interaction de l’utilisateur en appuyant manuellement sur un bouton de synchronisation tout le temps.

En plus de cela, vous devez écrire un logiciel serveur capable de fournir à votre SyncAdapter un “delta” de toutes les modifications depuis le dernier commit. L’approche la plus élémentaire consiste à conserver un horodatage «dernière synchronisation» dans votre application, qui doit provenir du serveur, sinon vous pourriez rencontrer des problèmes à cause des différences de temps entre le client et le serveur. Normaliser tous les horodatages comme GMT ou n’importe quel fuseau horaire de votre choix, mais restr sur cette décision. Si votre application doit afficher un horodatage en heure locale, vous devez utiliser la classe Java Calendar et TimeZone pour convertir l’horodatage normalisé en heure locale.

Votre application doit également marquer les enregistrements locaux modifiés comme étant “sales”, afin que votre SyncAdapter sache qu’il doit télécharger ces enregistrements modifiés ou nouveaux sur le serveur.

Les fonctionnalités minimales suivantes sont nécessaires pour votre logiciel serveur:

  • Mettre à jour la fonction des enregistrements existants
  • Ajouter une nouvelle fonction d’enregistrement
  • Obtenir des enregistrements mis à jour depuis la dernière synchronisation (l’application fournit un horodatage)
  • Obtenir de nouveaux enregistrements depuis la dernière synchronisation (l’application fournit un horodatage)

Vous pouvez également lire certaines API Google (telles que Google Agenda) pour avoir une idée du fonctionnement et de la conception de l’interface de l’API du serveur pour la communication.