Firebase Data Connect vous fournit un émulateur local pour le prototypage de bout en bout , ainsi que des flux d'intégration et de déploiement continus (CI/CD) :
- L'Data Connect émulateur interagit avec une instance de base de données PGLite intégrée locale pour vous permettre de prototyper des requêtes et des mutations, et de tester le code client dans un environnement entièrement local.
- L'émulateur Data Connect peut également être utilisé pour des tâches non interactives. Il vous permet d'exécuter des tests automatisés et peut être utilisé avec des workflows CI/CD. Cela est utile lorsque vos schémas sont stables et que vous souhaitez prototyper et tester le code côté client.
Ce guide couvre l'installation et l'utilisation de l'émulateur de manière plus détaillée que le guide de démarrage rapide.
Installer l'émulateur Data Connect
Avant d'installer le Local Emulator Suite pour utiliser l'émulateur Data Connect, vous aurez besoin des éléments suivants :
- Node.js version 18.0 ou ultérieure.
Installer la CLI Firebase et configurer le répertoire du projet
Installez la Firebase CLI en suivant le guide d'installation. Veillez à effectuer des mises à jour régulières, car l'émulateur Data Connect est en cours de développement actif, avec des corrections de bugs et de nouvelles fonctionnalités.
Si vous ne l'avez pas déjà fait, initialisez le répertoire de travail actuel en tant que projet Firebase, en suivant les invites pour spécifier les produits à utiliser :
firebase init
Définir ou modifier la configuration Local Emulator Suite
Si vous avez démarré l'émulateur Data Connect à partir de l'extension Data Connect VS Code, l'émulateur a été installé pour vous, si nécessaire.
Vous pouvez utiliser la Firebase CLI pour installer manuellement l'émulateur, ainsi que d'autres composants sélectionnés de la Local Emulator Suite. Cette commande démarre un assistant de configuration qui vous permet de sélectionner les émulateurs qui vous intéressent, de télécharger les fichiers binaires d'émulateur correspondants et de définir les ports d'émulateur si les valeurs par défaut ne conviennent pas.
firebase init emulatorsUne fois l'émulateur installé, aucune vérification de mise à jour n'est effectuée et aucun téléchargement automatique supplémentaire ne se produit tant que vous n'avez pas mis à jour votre version de la CLI Firebase.
Choisir un projet Firebase
Lors de la configuration, la Firebase CLI vous invite à choisir ou à créer un projet Firebase. Si vous choisissez un projet existant que vous avez configuré avec Data Connect dans la console Firebase, la configuration que vous avez choisie s'affiche.
Configurer l'émulateur
Configurer l'émulateur
L'exécution du flux firebase init vous guidera à travers les options de configuration de l'émulateur.
Comme les autres émulateurs de la Local Emulator Suite, les paramètres de configuration
sont stockés dans des fichiers de projet locaux.
- Votre fichier
firebase.jsoncontient les affectations de port de l'émulateur.- La clé
emulators:uine s'applique pas à l'émulateur Data Connect.
- La clé
Utiliser des ressources Data Connect locales et de production
Si vous souhaitez éviter d'impacter les ressources de production, définissez un demo- projectID ou assurez-vous que votre code client est instrumenté pour se connecter à l'émulateur, comme indiqué dans une section ultérieure.
Démarrer l'émulateur
Si vous exécutez l'émulateur de manière non interactive, par exemple pour les workflows CI/CD, démarrez-le avec l'option exec.
firebase emulators:exec ./path/to/test-script.shSi vous intégrez des requêtes et des mutations prédéfinies dans le code client et que vous utilisez l'émulateur spécifiquement pour tester les clients, vous pouvez utiliser l'option start pour les tâches interactives. Vous pouvez également démarrer l'émulateur à partir de l'extension Data Connect VS Code.
firebase emulators:startInstrumenter votre code client pour communiquer avec l'émulateur
Configurez vos classes de configuration ou de test intégrées à l'application pour interagir avec l' Data Connect émulateur comme suit.
JavaScript
import { initializeApp } from "firebase/app"; import { connectorConfig } from "@name-of-package"; import { connectDataConnectEmulator, getDataConnect } from 'firebase/data-connect'; // TODO: Replace the following with your app's Firebase project configuration const firebaseConfig = { //... }; const app = initializeApp(firebaseConfig); const dataConnect = getDataConnect(app, connectorConfig); connectDataConnectEmulator(dataConnect, "localhost", 9399); // Make calls from your app
Kotlin Android
val connector = MoviesConnector.instance // Connect to the emulator on "10.0.2.2:9399" connector.dataConnect.useEmulator() // (Alternatively) if you're running your emulator on non-default port: connector.dataConnect.useEmulator(port = 9999) // Make calls from your app
iOS
let connector = DataConnect.dataConnect(DefaultConnectorClient.connectorConfig) // Connect to the emulator on "127.0.0.1:9399" connector.useEmulator() // (alternatively) if you're running your emulator on non-default port: connector.useEmulator(port: 9999) // Make calls from your app
Utiliser l'émulateur pour les tests et l'intégration continue
Exécuter des images conteneurisées Local Emulator Suite
L'installation et la configuration du Local Emulator Suite avec des conteneurs dans une configuration CI typique sont simples.
Voici quelques points à noter :
- Les binaires de l'émulateur sont installés et mis en cache dans
~/.cache/firebase/emulators/. Vous pouvez ajouter ce chemin à la configuration du cache CI pour éviter les téléchargements répétés. - Si vous n'avez pas de fichier
firebase.jsondans votre dépôt, vous devez ajouter un argument de ligne de commande à la commandeemulators:startouemulators:execpour spécifier les émulateurs à démarrer. Par exemple,--only dataconnect.
Effacer votre base de données entre les tests
Pour réinitialiser vos environnements de test entre les exécutions, Firebase recommande les actions suivantes :
- Écrire des mutations dédiées pour gérer les éléments suivants :
- Lors de la configuration, remplissez une instance de base de données locale avec les données de démarrage.
- Lors de la suppression, supprimez les données modifiées de l'instance de base de données post-test.
Différences entre l'émulateur Data Connect et la production
L'Data Connect émulateur simule de nombreuses fonctionnalités du produit côté serveur. Toutefois, vous devez tenir compte de certaines exceptions :
- La version et la configuration détaillée de PGLite peuvent différer de la version de votre instance Cloud SQL de production.
- Si vous utilisez l'émulateur pour développer avec l'intégration Data Connectpgvector et Vertex API de, les appels à l'API Cloud Vertex sont effectués
directement, plutôt que via l'intégration Vertex de Cloud SQL. Toutefois, les appels à l'API de production sont toujours effectués, ce qui signifie que vous devez utiliser un projet Firebase réel, que vous ne pouvez pas utiliser de projet
demo-et que des coûts seront facturés pour l'API Vertex.