Un voyage de mille lieues a commencé par un pas. -Proverbe chinois
Guide pour la conférence de Firebase, pour toutes les personnes qui assisteront à cette conférence dans l'optique que ceux-ci puissent revenir sur les propos de la conférence et aussi pratiquer par des exemples
- Ce qu'il faut savoir sur Firebase
- Historique de Firebase
- Qu'est ce que Firebase ?
- Philosophie de Firebase
- Quels services utiliser avec Firebase ?
- Les types de Base de Donnée que nous offre Firebase
- Qu'est ce que FireStore ?
- Qu'est ce que Realtime database?
- Conclusion
- Fonctionnement de FireStore
- Qu'est ce que c'est le NoSQL ?
- Plusieurs espèces de NoSQL
- Un peu de pratique avec Firebase(FireStore)
- Créer une base de données Firebase
- Intégration de firebase à son projet
- Exemple
- Quelques notes avant de debuter
- Objectif de notre approche
- D'autre sources
- Remerciement
Ouvre un livre, c'est lui qui t'ouvrira. -Proverbe chinois
Lancé en 2011 sous le nom d'Envolve, par Andrew Lee et par James Templin, le service est racheté par Google en octobre 2014. Il appartient aujourd'hui à la maison mère de Google : Alphabet.
Firebase est un ensemble de services d'hébergement pour n'importe quel type d'application (Android, iOS, Javascript, Node.js, Java, Unity, PHP, C++ ...). Il propose d'héberger en NoSQL et en temps réel des bases de données, du contenu, de l'authentification sociale (Google, Facebook, Twitter et Github), et des notifications, ou encore des services, tel que par exemple un serveur de communication temps réel.
L’objectif de la création de Firebase.google.com en 2011 par James Tamplin et Andrew Lee est d’éviter aux professionnels et aux particuliers de s’engager dans un processus complexe de création et de maintenance d’une architecture serveur.
De plus, la plateforme peut être exploitée par plusieurs utilisateurs en même temps sans connaître un quelconque bug. La praticité est également au rendez-vous grâce à ses fonctionnalités intuitives. Depuis le rachat de la plateforme par Google en 2014, Firebase sdks a connu de nombreuses améliorations et n’a de cesse de satisfaire ses utilisateurs.
Firebase met à votre disposition différents services pouvant être répartis en deux catégories :
- Les outils de développement et de test de son application
- Les outils permettant d’augmenter et d’engager ses cibles.
Firebase nous propose 2 types de base de donnée, à savoir :
- Cloud Firestore
- Realtime Database
Cloud Firestore est une base de données de documents NoSQL sans serveur, cloud native, entièrement gérée et rapide. Ce service simplifie le stockage, la synchronisation et l'interrogation des données pour les applications Web, mobiles et IoT à l'échelle mondiale. Ses bibliothèques clientes permettent une synchronisation en direct et un fonctionnement hors connexion, tandis que ses fonctionnalités de sécurité et ses intégrations à Firebase et Google Cloud Platform (GCP) accélèrent le développement d'applications véritablement sans serveur.
Stockez et synchronisez les données avec notre base de données cloud NoSQL. Les données sont synchronisées sur tous les clients en temps réel et restent disponibles lorsque votre application se déconnecte. La base de données en temps réel Firebase est une base de données hébergée dans le cloud. Les données sont stockées au format JSON et synchronisées en temps réel avec chaque client connecté. Lorsque vous créez des applications multiplates-formes avec nos SDK iOS, Android et JavaScript, tous vos clients partagent une instance de base de données en temps réel et reçoivent automatiquement des mises à jour avec les données les plus récentes
Pour la suite de cette section nous allons nous consacrer entièrement à Cloud FireStore et essayer de voir en détail les différentes fonctionnalités.
Comme nous l'avons souligné précédement Firebase est une base de donnée NoSQL. Donc nous allons chercher à savoir comment celle-ci fonctionne pour pouvoir comprendre le fonctionnement de FireStore.
Le NoSQL, pour "not only SQL", désigne les bases de données qui ne sont pas fondées sur l'architecture classique des bases de données relationnelles. Développé à l'origine pour gérer du big data, l'utilisation de base de données NoSQL a explosée depuis quelques années. Mais qu'est-ce que réellement le NoSQL ?
Lorsque l'on parle de NoSQL, on regroupe des systèmes de base de données qui ne sont pas relationnels, mais il faut savoir qu'il existe plusieurs types de bases de données "NoSQL".
-
Les bases clef/valeur, permettent de stocker des informations sous forme d'un couple clef/valeur où la valeur peut être une chaine de caractère, un entier ou un objet sérialisé. Une base de données Redis. Ce type de base de données offre de très bonne performances par sa simplicité et peut même être utilisé pour stocker les sessions utilisateur ou le cache de votre site par exemple.
-
Les bases orientées colonnes, ressemble aux bases de données relationnelles, car les données sont sauvegardées sous forme de ligne avec des colonnes, mais se distingue par le fait que le nombre de colonnes peut varier d'une ligne à l'autre. Les solutions les plus connues sont HBase ou Cassandra.
-
Les bases orientées document, représente les informations sous forme d'objet XML ou JSON. L'avantage est de pouvoir récupérer simplement des informations structurées de manière hiérarchique. Les solutions les plus connues sont CouchDB, RavenDB et MongoDB.
-
Les bases orientées graphe, présentent les données sous forme de noeud et de relation. Cette structure permet de récupérer simplement des relations complexes. Un exemple de base graphe est Neo4J.
N.B : Cloud FireStore est une base de donnée orientées document
- Explication du schéma
Tous les documents doivent être stockés dans des collections. Les documents peuvent contenir des sous-collections et des objets imbriqués, qui peuvent inclure des champs primitifs comme des chaînes ou des objets complexes comme des listes.
Un document est un enregistrement léger qui contient un champ, qui correspond aux valeurs. Un nom identifie chaque document et nous pouvons traiter les documents comme des enregistrements JSON légers.
- Un aperçu de l'organisation de donnée dans Firebase
Le savoir n'est pas difficile, seule sa mise en pratique l'est. -Proverbe chinois
Bien avant de passer à la phase pratique nous allons consulter les différentes offres que nous propose les services Firebase
- Prérequis pour avoir accès à Firebase Il faut tout simplement disposer d'un compte google(Gmail)
N.B: Pour toute la suite de cette session nous utiliserons l'offre gratuite de firebase, donc vous pourriez suivre sans aucun souci
- Pour la création d'une base de données avec Firebase, il faut suivre les étapes suivantes:
- Se rendre sur le site console.firebase.google.com
- Cliquer sur + ajouter un projet(+ add project en anglais)
- Donner un nom au projet puis continuer
- Décider d'activer les services Google Analytics ou pas pour ce projet
- Configurer Google Analytics puis créer le projet
- Une fois le projet créer, rendez-vous dans le menu latéral puis Database
- Cliquer sur le boutton Créer une base de donnée
- Sélectionner le mode de votre application
- Définir l'emplacement du Cloud Firestore
- Vous pouvez commencer à utiliser votre base de données (Vous pouvez choisir entre deux options de base de données Cloud Firestore ou realtime database)
- Pour intégrer Firebase à son projet il faut suivre les étapes suivantes:
- Se rendre sur le site console.firebase.google.com
- Sélectionner le projet
- Sélectionner l'application (Web, IOS ou Android)
- Suivre les instructions selon le types de votre projet et les besoin de votre projet
L’exemple n’est pas le meilleur moyen de convaincre, c’est le seul. -Gandhi
Pour cet exemple nous allons nous inspirer du tutoriel sur firestore-web. A la différence que cette fois nous allons essayer d'implementer avec d'autres langages ou framework autre que le javascript classique.
Avant de commencer l'implémentation de dans d'autres langages, je vous conseille vivement de suivre ce tutoriel pour avoir un aperçu de l'utilisation de Firestore dans votre projet en utilisant le JavaScript classique.
Nous soulignerons également que nous partons de 0 pour obtenir le resultat de ce tutoriel et cela dans les différent langages sélectionnés. Pour obtenir le resultat espèré nous nous atelons dans la mesure du possible à complèter chaque jour ce repertoire pour la conférence. Il pourrait être possible à l'instant de la session que l'implémentation complète ne soit pas faite.
Dans l'exemple du tutoriel nous avons une Single Page Application (SPA), et la logique est entièrement gèrer depuis le javascript. Il pourrait être possible alors que nous fassions quelques changement majeur dans le code de base html qui lui proviens du tutoriel précédent. Donc nous pourrions peut-être passé d'un SPA à une application sur plusieurs pages.
L'objectif de cette approche est de nous permettre d'avoir un aperçu sur plusieurs façon d'intégrer firebase à notre projet.
Les fichiers de base pour pouvoir suivre les différentes implémentations se situe dans Base
Pour démarrez commencer par cloner ce repository grâce, au gestionnaire de package git si vous n'avez pas encore ça sur votre machine.
git clone https://github.com/GreyCoderK/FirebaseConference.gitPuis taper la commande précédente à l'interieur d'un invite de commande pour récuperer cela localement chez vous.
-
Un aperçu des différents langages qui seront utilisés :
-
Explication du choix des langages :
-
Golang
Pour répondre à ce besoin de simplicité, et ne pas avoir un langage qui empile les fonctionnalités pour faire plaisir au premier quidam, il se veut simple à lire, à comprendre et à prendre en main. Libre ensuite au développeur de penser son programme comme bon lui semble. Le projet Golang est à l’origine un projet interne chez Google dont le but est de résoudre les problèmes de montée en charge. Et, puisque ce problème est commun à beaucoup d’entreprises, le projet est devenu un langage à part entière avec le concept de concurrence asynchrone en point de mire.
-
NodeJs
NodeJS est une plateforme qui s’appuie sur le moteur JavaScript de Chrome permettant de développer rapidement des applications réseau rapides et évolutives. NodeJS utilise un modèle événementiel, aux E/S non bloquantes qui le rend léger et efficace, idéal pour les applications gérant d’importants volumes de données en temps réel sur des dispositifs distribués. NodeJS utilise JavaScript, un langage très utilisé par les développeurs web dans les applications front-end, côté navigateur. L’interpréteur de syntaxe JavaScript NodeJS a été réécrit et compilé en C++ ce qui en fait un interpréteur JavaScript bien plus rapide que celui du navigateur.
-
Python
Si vous débutez dans le codage, commencez par le langage Python, car il est puissant sans être trop compliqué. Python est un langage relativement nouveau. Il est donc plus simple que les anciens, ce qui le rend plus intuitif et plus rapide à maîtriser. À peu près tout ce que vous pouvez créer avec d’autres langages de programmation, tels que C ++ ou Ruby, peut être créé avec Python. Vous pouvez également faire de l’apprentissage machine, analyser des données, traiter le langage naturel, et bien d'autres choses encore.
-
La sagesse des siècles nous apprend qu'il suffit d'approfondir une chose pour en connaître plusieurs autres. -Dan Millman
Dans la vie, entourez vous des personnes qui illuminent votre chemin -plaisir des yeux sept hanou
- @The_Day Pour tous ces enseignements et pour ce qu'il fais pour la communauté
- @EZFRICA Pour m'avoir donné cette occasion de vous parlez de Firebase
- @Donutson Pour les relectures, corrections et suggestions
- @Mr_Mathematiques Pour le plan de ce document




