2016-12-23 3 views
1

Nous développons une application sociale avec Firebase (swift/iOS).Firebase - Développement d'applications - calcul du delta sans générer un trafic de données élevé

Nous sommes confrontés au problème que nous avons deux arbres de données et que nous devons calculer le delta sans générer un trafic de données élevé.

Exemple: Nous avons une structure de voitures et un utilisateur de structure. Les voitures de structure contiennent 100 modèles de véhicules différents. La structure de l'utilisateur contient tous les modèles de véhicules qui ont déjà été pilotés par l'utilisateur. Nous voulons maintenant mettre en œuvre une solution performante afin de déterminer tous les véhicules qui n'ont pas encore été pilotés par un utilisateur sans avoir à télécharger l'arborescence entière.

Le nombre d'utilisateurs et le nombre de véhicules augmentent régulièrement.

Est-ce que quelqu'un a une approche ou une idée de la solution dans laquelle nous devons penser?

amour, alex

+2

Vous semblez être assez bien informé pour au moins aller quelque part avec du code avant de poser une question à ce sujet. Ajouter quelque chose que vous avez essayé va un long chemin vers la réception de réponses rapides. Cela améliore la clarté de la question tant que vous réduisez la quantité de code à ce qui est seulement nécessaire pour montrer votre problème et la solution désirée. – Sethmr

Répondre

1

Je pense qu'ils clé pour utiliser efficacement firebase est la duplication des données. Donc, si vous voulez afficher une liste de voitures que l'utilisateur a et n'a pas conduit, créez un tableau séparé contenant uniquement les informations affichées dans cette liste, comme le chemin vers une image, le modèle &, en utilisant des ID uniques comme clés aux entrées de cette table. Vous n'auriez pas besoin de connaître des choses comme la vitesse maximale et le prix jusqu'à ce qu'ils tapotent dans les détails, non? (Je fais cependant quelques suppositions ici.)

Ensuite, il suffit d'obtenir la liste des ID uniques pour les voitures que l'utilisateur a déjà conduit, et de manipuler votre modèle hors ligne en conséquence.

Actuellement, j'utilise un serveur externe pour gérer la duplication de données, qui propage une opération d'écriture à d'autres endroits de la base de données si nécessaire. Je suis sur mon téléphone en ce moment mais je pense que Ray Wenderlich a un article à ce sujet.