web-dev-qa-db-fra.com

Lequel est préférable d'utiliser entre Parse, Firebase et AWS Cognito?

Je souhaite utiliser le service de synchronisation pour mon application. Mais je veux choisir le meilleur. Je veux savoir lequel est le meilleur parmi tous ceux-ci. Mon application fonctionnera sur Android, IOS, Windows et Web.

Je vais avec Firebase parce que je l'ai testé. Cela me donne des résultats rapides et me permet également de travailler hors ligne. Est-ce mieux ou j'irai avec Parse ou AWS Cognito?

J'ai également une option de Google Cloud. Google Cloud fournit-il des services comme Firebase? Et les mises à jour en temps réel sont-elles possibles avec Parse comme Firebase?

27
Nidhi Sen

Codeek a raison de dire que cette question est basée sur l'opinion, alors prenez ma réponse avec un grain de sel.

J'ai de l'expérience avec Parse et Firebase, mais pas avec Cognito. D'après mon expérience, Parse est meilleur lorsque vous travaillez avec de grandes bases de données relationnelles. (Bases de données I.E. où plusieurs classes d'objets pointent les uns vers les autres et interagissent.) Dans ce système, il est facile de stocker beaucoup de données de manière très succincte, mais le travail avec ces données se fait via des instantanés. Cela signifie que vous pouvez prendre un instantané des données, le modifier, puis actualiser le serveur avec l'instantané mis à jour. C'est parfait pour des choses comme mon application de livraison où un seul utilisateur met à jour les commandes sur notre serveur à la fois.

Firebase implémente un schéma d'observateur de modèle, et c'est donc beaucoup mieux pour les applications hautement interactives. Par exemple, j'ai utilisé Firebase pour créer un jeu de patate chaude en temps réel. L'avantage ici est que les modifications apportées aux données sur le serveur sont automatiquement transmises à tous les appareils qui se sont enregistrés en tant qu'écouteurs (fonctionnalité non disponible sur Parse d'après mon expérience). Cela permet de garder tous les utilisateurs sur la même page tout le temps. L'inconvénient est que la base de données est structurée de manière hiérarchique et n'a pas défini d '"objets". Il est plutôt structuré via des paires clé/valeur où les clés parentes ne peuvent pas avoir de valeur associée. Pour illustrer cela, un exemple de structure pour stocker un jeu sur ma base de données a ressemblé à ceci:

-Games  
--1  
---Users  
----1 = "[email protected]"  
----2 = "[email protected]"  
---PotatoHolder = 1  
---TimeRemaining = 30  
---Loser = -1  

Cognito que je ne connais pas, je vais donc laisser quelqu'un d'autre expliquer comment ce système de base de données est conçu.

En résumé, codeek a raison de dire qu'il s'agit d'une question d'opinion, mais pour deux de vos options, une bonne règle empirique d'après mon expérience est que Parse est fantastique pour les grandes bases de données de relations en conjonction avec des applications mono-utilisateur (c'est-à-dire un seul joueur ou jeux au tour par tour). Firebase est plus adapté aux systèmes de données hiérarchiques en conjonction avec des applications multijoueurs en temps réel.

J'espère que ça aide! Si vous pouviez publier un peu plus sur le type d'application que vous essayez de créer, alors peut-être que moi-même ou quelqu'un d'autre pourrions vous fournir un peu plus de conseils.

Réponse développée: Bien que cette question ait été marquée comme hors sujet, pour répondre à la question de suivi de Nidhi s'il existe un moyen d'utiliser Parse comme modèle- schéma d'observateur: Pas facilement. L'utilisation d'une minuterie est l'option la plus simple. L'autre option consiste à utiliser les notifications Push. Cela nécessiterait d'obtenir l'autorisation de votre utilisateur . Vous pouvez définir le Code Cloud sur Parse pour envoyer automatiquement des notifications Push à tous les utilisateurs concernés, puis les intercepter au sein de votre client afin qu'ils soient "silencieux". En d'autres termes, lorsqu'ils arrivent, votre client peut répondre en mettant à jour votre jeu sans afficher de ruban ou de notification comme les notifications Push normales. Je ne l'ai pas fait moi-même, car je préfère utiliser Firebase pour ce type d'application, mais je pense que c'est possible.
Source:PFQueryTableView Auto Refresh lorsque de nouvelles données sont mises à jour ou actualiser chaque minute à l'aide de Parse
La réponse de Keith est similaire à la référence de Nidhi à l'actualisation des PFObjects via un Timer, le commentaire de Handsomeguy fait référence à la possibilité de notifications Push "silencieuses".

28
Patrick Bradshaw