Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 25 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

Firebase est une plateforme de développement d'applications lancée en 2012 et rachetée par Google deux ans plus tard. À ses débuts, Firebase était considéré uniquement comme une base de données pour les applications en temps réel, mais Google a vu son potentiel et a décidé d'y ajouter des services supplémentaires

Actuellement, Firebase est un système BaaS (backend as a service) avec 18 services pour faciliter la création d'applications web et mobiles. Parmi les entreprises qui utilisent les services BaaS de Firebase figurent Accenture, Alibaba Travels, Stack, Twitch et Instacart, ainsi que plus de 2 300 autres

Avantages de l'utilisation de Firebase

Le premier service proposé par Firebase a été sa base de données en temps réel, qui reste l'un de ses plus grands attraits. Les bases de données en temps réel de Firebase sont hébergées dans le nuage, stockent les données au format JSON et se synchronisent en temps réel avec chaque client qui y est connecté. Que vous utilisiez le SDK iOS, le SDK Android ou le SDK JavaScript, toutes les applications connectées à une base de données Firebase Realtime partagent une instance de la base de données, toujours mise à jour avec les dernières données

Cloud Firestore est un autre service Firebase intéressant. Il s'agit d'une base de données documentaire NoSQL conçue pour faciliter le stockage, la synchronisation et l'interrogation des données pour les applications mobiles et web à l'échelle mondiale. La création de hiérarchies pour stocker des données connexes et de requêtes expressives pour extraire des données permet d'exploiter pleinement le potentiel de Cloud Firestore. De leur côté, les requêtes s'adaptent en fonction de la taille des résultats plutôt que de la taille de l'ensemble des données. Cela permet aux applications d'évoluer dès le début sans attendre le moment où les besoins dépassent la capacité

Outre les services de base de données susmentionnés, Firebase propose également des services d'hébergement, de stockage de fichiers, de fonctions(de type AWS Lambda), parmi bien d'autres choses

Création d'une API

Les API sont un moyen de fournir des services que vos propres applications ou des applications tierces peuvent utiliser. Firebase vous permet de fournir des services personnalisés qui, à leur tour, utilisent les propres services de Firebase sans avoir à configurer un backend pour ces services. Vous pouvez, par exemple, offrir un accès à une base de données en temps réel Firebase pour que des applications tierces puissent interroger les informations collectées par des capteurs industriels

La première étape de la création d'une API dans Firebase consiste à accéder à la console Firebase et à ajouter un projet en cliquant sur "Ajouter un projet" et en donnant un nom au nouveau projet. Google vous proposera d'activer Google Analytics pour votre nouveau projet. Il est recommandé d'accepter cette recommandation, car vous obtiendrez des avantages tels que les tests A/B et une grande variété de rapports statistiques à partir de votre API

Une fois votre projet créé, vous pourrez sélectionner les services Firebase que votre API utilisera. Pour illustrer cette tâche, nous allons voir comment utiliser le service de base de données en temps réel de Firebase

Mise en place d'une base de données en temps réel dans Firebase

Dans la barre de navigation à gauche, dans la section Développer, cliquez sur Base de données en temps réel. Un bouton "Créer une base de données" apparaît à droite. Cliquez dessus pour créer votre première base de données dans Firebase

Ensuite, vous devrez choisir entre plusieurs options de localisation géographique pour votre nouvelle base de données. Sélectionnez celle qui est la plus proche de vos utilisateurs. C'est un aspect important pour minimiser la latence de votre API, en particulier dans les applications en temps réel

L'étape suivante consiste à configurer les règles de sécurité de base pour votre base de données. Vous pouvez opter pour le mode verrouillé, puis attribuer des autorisations d'accès en fonction des besoins, ou opter pour le mode test, qui autorise toutes les lectures et écritures

Vous pouvez commencer par l'option du mode test pour ne pas compliquer les paramètres de sécurité au début. Vous pourrez toujours créer des règles ultérieurement pour définir la configuration de sécurité avec une plus grande granularité

Dès que vous avez fini de configurer votre base de données, l'API correspondante est également activée dans la section API et services de votre console personnelle dans Google Cloud Platform

Programmation de l'API Firebase

À ce stade, vous avez déjà configuré les éléments de base de votre projet dans la console Firebase. L'étape suivante consiste à écrire le code de votre API. Pour ce faire, vous devez initialiser l'hébergement et les fonctions de Firebase sur votre ordinateur local. Vous pouvez installer firebase-tools en utilisant npm

npm install -g firebase-tools

Ensuite, vous pouvez vous connecter à firebase et initialiser votre projet avec les commandes suivantes

firebase login firebase init

Un écran de bienvenue s'affiche dans lequel Firebase vous informe du dossier dans lequel votre projet sera initialisé, et un menu d'options apparaît

Dans ce menu, sélectionnez Functions et Hosting (l'option Hosting vous permettra d'avoir une URL personnalisée pour l'API que vous développerez). Choisissez ensuite dans la liste l'application Firebase que vous avez créée précédemment, puis sélectionnez la langue à utiliser. Pour développer une API web, vous pouvez opter pour JavaScript

Si vous utilisez des dépendances, installez-les avec npm dans le dossier functions. Vous pouvez ensuite commencer à écrire le code de vos fonctions. N'oubliez pas d'inclure les paquets firebase-functions et firebase-admin, ainsi que tous les autres paquets dont vous avez besoin

import * as functions from 'firebase-functions' ;
import * as admin from 'firebase-admin'

Pour utiliser la base de données en temps réel, vous devez spécifier son URL lors de l'initialisation de votre SDK JavaScript. L'URL se trouve dans la section Realtime Database de la console Firebase. Vous pouvez la reconnaître à son format

https://<nom de la base de données>.<région>.firebasedatabase.app

Vous pouvez utiliser l'extrait suivant pour initialiser votre SDK, en remplaçant les données correspondant à l'objet de configuration de votre projet

var config = {
 apiKey : "apiKey",
 authDomain : "projectId.firebaseapp.com",
 databaseURL : "https://databaseName.firebaseio.com",
 storageBucket : "bucket.appspot.com"
} ;
firebase.initializeApp(config) ;
var database = firebase.database()

Une fois que vous avez écrit le code de votre fonction API, il est temps de la déployer. Mais avant cela, vous devrez faire quelques changements dans firebase.json, en ajoutant les lignes suivantes, modifiées en fonction de la configuration de votre projet

"rewrites" : [
 {
 "source" : "/api/v1/**",
 "function" : "webApi"
 }

]
L'étape suivante est le déploiement. La première fois, vous devez effectuer un déploiement complet, en exécutant la commande

firebase deploy

Lors des déploiements suivants, vous pourrez déployer uniquement les fonctions, en utilisant le paramètre -only functions

Après avoir exécuté la commande deploy, le CLI Firebase affiche l'URL des terminaux HTTP de vos fonctions dans le terminal, que vous pouvez utiliser pour invoquer vos API à partir d'une application web. L'URL contient votre ID de projet et une région pour la fonction HTTP. Par exemple, l'URL suivante peut être utilisée pour appeler une fonction de requête d'élément en lui passant itemid=1 comme paramètre
h

ttps://

us-central1-apiproject-8753c.cloudfunctions.net/itemQuery?itemid=1
Pour exécuter la fonction, ouvrez l'URL avec les paramètres correspondants dans un navigateur

Notez que le déploiement dans l'environnement de production nécessite un abonnement au plan Firebase Blaze, qui est payé à l'utilisation, comme vous pouvez le lire sur la page de tarification de Firebase. Il s'agit d'un service de post-facturation, ce qui signifie que vous êtes facturé pour votre utilisation à la fin de chaque mois

Si vous n'avez pas d'abonnement Blaze, la commande deploy n'affichera pas votre URL API. Au lieu de cela, vous verrez un message vous informant que vous devez souscrire au plan Blaze si vous souhaitez déployer dans l'environnement d'exécution. Dans ce cas, vous pouvez toujours utiliser Firebase Local Emulation Suite pour créer et tester des applications sur votre machine locale au lieu de les déployer dans l'environnement de production Firebase. Les tests locaux sont utiles pour éviter des coûts inutiles pendant le développement de l'application, car chaque test peut générer des frais sur votre compte

Test local et prototypage

L'outil Local Emulator Suite offre une interface utilisateur intégrée qui rend le prototypage facile et utile pour tester vos applications sur votre machine locale

Avec l'interface utilisateur de la suite Emulator, vous pouvez tester vos conceptions de base de données, vos flux de travail de fonctions cloud, analyser les performances des services dorsaux et évaluer les changements dans les règles de sécurité, entre autres tâches. Il s'agit essentiellement d'un bac à sable sécurisé pour tester la fonctionnalité de votre API avant de l'envoyer dans un environnement de production

Pour émuler vos fonctions ou tester votre application localement, exécutez firebase emulators:start. Vous devez avoir installé Java pour pouvoir utiliser Firestore Emulator. Si vous ne l'avez pas, vous pouvez l'installer à partir d'ici

Lorsque vous invoquez Firestore Emulator, la commande renvoie une URL qui vous permet d'ouvrir l'interface utilisateur d'Emulator Suite dans votre navigateur. Par défaut, cette URL sera localhost:4000, mais elle peut varier d'une machine à l'autre

Vous obtiendrez également une URL complète pour votre fonction HTTP. Cette URL ressemblera à
h

ttp://l

ocalhost:5001/apiproject-8753c/us-central1/itemQuery
sauf qu'elle contiendra le nom de votre projet, le nom de votre fonction et un numéro de port différent sur votre machine locale

Pour tester la fonction, copiez l'URL renvoyée par l'émulateur, en ajoutant les paramètres nécessaires (par exemple, ?itemid=1) et entrez-la dans un nouvel onglet de votre navigateur. Les résultats de l'exécution de l'API apparaîtront dans l'interface utilisateur de l'Emulator Suite

Dans l'onglet Logs, vous verrez de nouveaux logs indiquant que la fonction itemQuery() a été exécutée. Si votre fonction génère de nouvelles données dans votre base de données Firestore, vous le verrez dans l'onglet Firestore

Mieux connaître votre API

Si vous souhaitez que les API que vous développez deviennent populaires, Firebase peut également vous y aider. Non seulement parce qu'elle vous permet de créer votre application plus rapidement, en vous déchargeant d'une grande partie du travail lié à la mise en place et au fonctionnement des services dorsaux, mais aussi parce qu'elle vous aide à positionner votre produit. Comment cela est-il possible ? Tout simplement parce que les applications associées à Firebase sont mieux classées dans les moteurs de recherche que les autres applications

Tenez également compte de l'API d'indexation des applications de Firebase. Cet outil améliore le classement des liens vers les applications et aide les utilisateurs à trouver le contenu souhaité. Il place également le bouton Installer après le bouton de la page d'accueil de votre application, de sorte que les utilisateurs intéressés ne sont qu'à un clic de devenir des utilisateurs de votre application

En conclusion, Firebase vous offre non seulement des services backend qui accélèrent considérablement le développement de votre API, mais une fois qu'elle est opérationnelle et exposée au monde, il vous aide également à la promouvoir - et à gagner de l'argent grâce à elle.

  • Geekflare Editorial
    Auteur
    L'équipe éditoriale de Geekflare est un groupe de rédacteurs et d'éditeurs expérimentés qui se consacrent à fournir un contenu de haute qualité à nos lecteurs. Nous nous engageons à fournir un contenu utile qui aide les individus et les entreprises à se développer.
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus