Geekflare est soutenu par notre public. Nous pouvons gagner des commissions d'affiliation en achetant des liens sur ce site.
In Développement Dernière mise à jour : 16 février 2022
Partager sur:
Scanner de sécurité des applications Web Invicti – 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 pensé 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 BaaS (backend as a service) système avec 18 services pour faciliter la création d'applications web et mobiles. Parmi les entreprises utilisant les services BaaS de Firebase figurent Accenture, Alibaba Travels, Stack, Twitch et Instacart, ainsi que plus de 2,300 XNUMX autres.

Avantages de l'utilisation de Firebase

Le premier des services proposés par Firebase était sa base de données en temps réel, et il reste l'un de ses plus gros attraits. Les bases de données en temps réel Firebase sont hébergées dans le cloud, stockant les données dans JSON formatage et synchronisation en temps réel avec chaque client qui leur 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 à jour avec les dernières données.

Cloud Firestore est un autre service Firebase intéressant. C'est un NoSQL base de données de documents 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 les données associées et les requêtes expressives pour récupérer les données permettent de réaliser tout le potentiel de Cloud Firestore. À leur tour, les requêtes évoluent en fonction de la taille des résultats plutôt que de la taille de l'ensemble de données. Cela permet aux applications d'évoluer dès le début sans attendre le moment où les besoins dépassent la capacité.

En plus des services de base de données susmentionnés, Firebase propose également services d'hébergement, stockage de fichiers, fonctions (Style AWS Lambda), parmi beaucoup d'autres choses.

Création d'une API

Les API sont un moyen de fournir des services à vos propres applications ou à des applications tierces. 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 pourriez, par exemple, offrir l'accès à une base de données en temps réel Firebase pour les applications tierces afin d'interroger les informations collectées par les capteurs industriels.

La première étape de la création d'une API dans Firebase consiste à accéder au Console Firebase et ajoutez un projet en cliquant sur « Ajouter un projet » et en donnant un nom au nouveau projet. Google vous donnera la possibilité d'activer Google Analytics pour votre nouveau projet. Il est recommandé d'accepter cette recommandation, car vous obtiendrez des avantages tels que des tests A/B et une grande variété de rapports statistiques 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 Firebase Realtime.

Configurer 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îtra sur la 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 celui qui est le 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 selon vos besoins, ou opter pour le mode test, qui permet 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 pouvez toujours créer des règles plus tard pour définir la configuration de sécurité avec une plus grande granularité.

Dès que vous avez terminé 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 votre code API. Pour ce faire, vous devrez initialiser l'hébergement et les fonctions Firebase sur votre ordinateur local. Vous pouvez installer firebase-tools à l'aide de 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'affichera dans lequel Firebase vous informe du dossier dans lequel votre projet sera initialisé, et un menu d'options apparaîtra.

Dans ce menu, sélectionnez Fonctions et hébergement (l'option Hébergement 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, après quoi vous devez sélectionner la langue à utiliser. Pour développer une API web, vous pouvez opter pour JavaScript.

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

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

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

https://<database-name>.<region>.firebasedatabase.app

Vous pouvez utiliser l'extrait de code suivant pour initialiser votre SDK, en remplaçant les données qui correspondent à 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 déployer. Mais avant cela, vous devrez apporter quelques modifications dans firebase.json, en ajoutant les lignes suivantes, modifiées en fonction de la configuration de votre projet :

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

La prochaine étape est le déploiement. La première fois, vous devez effectuer un déploiement complet en exécutant la commande :

firebase deploy

Dans les déploiements suivants, vous pourrez déployer uniquement les fonctions, à l'aide du paramètre –only functions.

Après avoir exécuté la commande deploy, la CLI Firebase affiche l'URL des points de terminaison HTTP de vos fonctions dans le terminal, que vous pouvez utiliser pour appeler 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 en paramètre :

https://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 payant, 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 votre consommation vous est facturée à la fin de chaque mois.

Si vous n'avez pas d'abonnement Blaze, la commande deploy n'affichera pas l'URL de votre API. Au lieu de cela, vous verrez un message vous informant que vous devez vous abonner 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 ordinateur local au lieu de les déployer dans l'environnement de production Firebase. Les tests locaux sont utiles pour éviter des coûts inutiles lors du développement de l'application, car chaque test peut générer des frais sur votre compte.

Tests locaux 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 ordinateur local.

Avec l'interface utilisateur Emulator Suite, vous pouvez tester vos conceptions de base de données, vos fonctions Cloud workflows, analyser les performances des services backend et évaluer les modifications des 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 depuis ici.

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

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

http://localhost:5001/apiproject-8753c/us-central1/itemQuery

seulement il aura le nom de votre projet, le nom de votre fonction, et il peut également avoir 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 saisissez-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 Emulator Suite.

Dans l'onglet Journaux, vous verrez de nouveaux journaux 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 les verrez dans l'onglet Firestore.

Gagner en visibilité pour votre API

Si vous souhaitez que les API que vous développez deviennent populaires, Firebase peut également vous aider. Non seulement parce qu'il vous permet de créer votre application plus rapidement, en éliminant une grande partie du travail de mise en place et de fonctionnement des services backend, mais également en vous aidant à positionner votre produit. Comment est-ce possible? Tout simplement parce que les applications associées à Firebase se classent mieux dans les classements de recherche que les autres applications.

Tenez également compte de l'API d'indexation des applications de Firebase. Cet outil améliore les classements de recherche des liens d'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 afin que les utilisateurs intéressés ne soient qu'à un clic de devenir utilisateurs de votre application.

En conclusion, Firebase vous offre non seulement des services backend qui accélèrent considérablement la développement de votre API mais une fois qu'il est opérationnel et exposé au monde, il vous aide également à le promouvoir – et à en tirer de l'argent.

  • Éditorial Geekflare
    Auteur
    L'équipe éditoriale de Geekflare est un groupe d'écrivains et d'éditeurs expérimentés qui se consacrent à fournir un contenu de haute qualité à nos lecteurs. Nous nous engageons à fournir un contenu exploitable qui aide les particuliers et les entreprises à se développer.
Merci à nos commanditaires
Plus de bonnes lectures sur le développement
Alimentez votre entreprise
Certains des outils et services pour aider votre entreprise à se développer.
  • Invicti utilise 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, moteur de recherche et tout ce dont vous avez besoin pour collecter des données Web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation de travail tout-en-un pour vous aider à gérer les projets, les tâches, le travail, les ventes, le CRM, les opérations, workflowset plus encore.
    Essayez Monday
  • Intruder est un scanner de vulnérabilités en ligne qui détecte les failles de cybersécurité de votre infrastructure, afin d'éviter des violations de données coûteuses.
    Essayez Intruder