Utiliser le SDK Admin avec Data Connect

Firebase Admin SDK est un ensemble de bibliothèques de serveurs qui vous permet d'interagir avec Firebase à partir d'environnements privilégiés pour effectuer des actions telles que des requêtes et des mutations sur un service Firebase Data Connect pour la gestion des données groupées et d'autres opérations avec des droits élevés.

Admin SDK vous fournit une API pour appeler des opérations dans les deux en lecture/écriture et en lecture seule. Avec les opérations en lecture seule, vous pouvez implémenter des fonctions administratives qui ne peuvent pas modifier les données de vos bases de données en toute tranquillité.

Configuration du SDK Admin

Pour commencer à utiliser avec Firebase Data Connect sur votre serveur, vous devez : vous devez d'abord installer et configurer Admin SDK pour Node.js

Initialiser le SDK Admin dans vos scripts

Pour initialiser le SDK, importez les extensions Data Connect et déclarez l'ID et l'emplacement de votre service de projet.


import { initializeApp } from 'firebase-admin/app';
import { getDataConnect } from 'firebase-admin/data-connect';

// If you'd like to use OAuth2 flows and other credentials to log in,
// visit https://firebase.google.com/docs/admin/setup#initialize-sdk
// for alternative ways to initialize the SDK.

const app = initializeApp();

const dataConnect = getDataConnect({
    serviceId: 'serviceId',
    location: 'us-west2'
});

Concevoir des requêtes et des mutations à utiliser avec Admin SDK

Admin SDK est utile pour tester les opérations Data Connect, compte tenu des considérations suivantes.

Comprendre le SDK et les instructions d'opération @auth(level: NO_ACCESS)

Étant donné que Admin SDK fonctionne avec des privilèges, il peut exécuter toutes vos requêtes et mutations, quel que soit le niveau d'accès défini à l'aide de directives @auth, y compris le niveau NO_ACCESS.

Si, parallèlement aux opérations client, vous organisez vos requêtes administratives et les mutations dans les fichiers sources .gql à importer dans des scripts administratifs Firebase vous recommande de marquer les opérations d'administration d'accès autorisé, ou être plus explicite et les définir en tant que NO_ACCESS Dans tous les cas, cela empêche l'exécution de ces opérations à partir de clients ou dans d'autres contextes non privilégiés.

Utiliser le SDK avec l'émulateur Data Connect

Dans les environnements de prototype et de test, il peut être utile d'injecter des données et d'autres opérations sur des données locales. Le Admin SDK vous permet de simplifier vos car il ignore l'authentification et l'autorisation pour les flux locaux.

Les SDK Admin Firebase se connectent automatiquement à l'émulateur Data Connect lorsque la variable d'environnement DATA_CONNECT_EMULATOR_HOST est définie :

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

Pour en savoir plus, consultez les pages suivantes :

Mettre en œuvre des cas d'utilisation courants

Admin SDK est fourni pour les opérations privilégiées sur vos données critiques.

L'API de Data Connect se compose d'une interface executeGraphql en lecture/écriture et d'une interface executeGraphqlRead en lecture seule.

Gérer les données utilisateur

Admin SDK est généralement utilisé pour gérer les données utilisateur.

interface UserData {
  user: {
    id: string;
    name: string;
  };
}

export interface UserVariables {
  id: string;
}

const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };

// user can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";

//executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);

//executeGraphqlRead (similar to above but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);

// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }

Étape suivante