Firebase Data Connect fournit un émulateur local pour un déploiement de bout en bout. prototypage, ainsi que l'intégration et le déploiement continus (CI/CD) :
- L'émulateur Data Connect interagit avec une instance intégrée Instance de base de données PGLite pour prototyper des requêtes et des mutations, et tester dans un environnement entièrement local.
- L'émulateur Data Connect peut également être utilisé pour les contenus non interactifs travail. Il vous permet d'exécuter des tests automatisés et est adapté aux 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 explique plus en détail que le guide de démarrage rapide l'installation et l'utilisation de l'émulateur.
Installer l'émulateur Data Connect
Avant d'installer Local Emulator Suite pour utiliser l'émulateur Data Connect, vous devez disposer des éléments suivants :
- Node.js 18.0 ou version ultérieure
Installer la CLI Firebase et configurer le répertoire du projet
Installez la CLI Firebase en suivant le guide d'installation. Veillez à mettre à jour régulièrement les données, car les L'émulateur Data Connect est en cours de développement avec des corrections de bugs et nouvelles fonctionnalités.
Si vous ne l'avez pas déjà fait, initialisez le répertoire de travail actuel en tant que un projet Firebase, en suivant les instructions 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 Firebase VS Code , l'émulateur a été installé pour vous, si nécessaire.
Vous pouvez utiliser la CLI Firebase pour installer manuellement l'émulateur avec d'autres composants sélectionnés de Local Emulator Suite. Cette commande lance une de configuration qui vous permet de sélectionner les émulateurs qui vous intéressent, téléchargez le les fichiers binaires correspondants, et définissez les ports de l'émulateur si les valeurs par défaut sont n'est pas approprié.
firebase init emulators
Une fois l'émulateur installé, aucune vérification des mises à jour n'est effectuée et aucune les téléchargements automatiques seront effectués jusqu'à ce que vous mettiez à jour la version de la CLI Firebase.
Sélectionner un projet Firebase
Dans le flux de configuration, la CLI Firebase 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 y sera suggérée.
Configurer l'émulateur
Configurer l'émulateur
L'exécution du flux firebase init
vous guide à travers les options de configuration de l'émulateur.
Comme les autres émulateurs de Local Emulator Suite, les paramètres de configuration sont stockés dans des fichiers de projet locaux.
- Le fichier
firebase.json
contient des attributions de ports d'émulateur.- La clé
emulators:ui
ne s'applique pas à Data Connect émulateur d'application.
- La clé
Utiliser des ressources Data Connect locales et de production
Si vous voulez vous assurer de ne pas avoir d'impact sur les ressources de production, définissez un projectID demo-
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.sh
Si 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 un travail interactif. Vous pouvez également démarrer l'émulateur à partir de l'extension VS Code.
firebase emulators:start
Instrumentez votre code client pour communiquer avec l'émulateur.
Définissez la configuration dans l'application ou les classes de test pour interagir avec Data Connect 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 Local Emulator Suite conteneurisées
L'installation et la configuration de Local Emulator Suite avec des conteneurs dans une configuration CI typique sont simples.
Voici quelques points à prendre en compte :
- Les binaires de l'émulateur sont installés et mis en cache dans
~/.cache/firebase/emulators/
. Vous pouvez ajouter ce chemin à la configuration de votre cache CI pour éviter les téléchargements répétés. - Si vous ne disposez d'aucun fichier
firebase.json
dans votre dépôt, vous devez ajouter un argument de ligne de commande à la commandeemulators:start
ouemulators:exec
pour 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 étapes suivantes :
- Écrire des mutations dédiées pour gérer les éléments suivants :
- Lors de la configuration, renseignez une instance de base de données locale avec des données de démarrage.
- Lors du démontage, 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'émulateur Data Connect simule de nombreuses fonctionnalités côté serveur produit. Toutefois, il existe quelques exceptions à prendre en compte :
- 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 de pgvector et de l'API Vertex de Data Connect, les appels à l'API Cloud Vertex sont effectués directement, plutôt que via l'intégration de Vertex dans Cloud SQL. Toutefois, les appels
à l'API de production sont toujours effectuées, ce qui signifie que vous devez utiliser
ne peut pas utiliser de projet
demo-
, et les coûts de l'API Vertex seront encourus.