Firebase Admin SDK est un ensemble de bibliothèques serveur qui vous permet d'interagir avec Firebase à partir d'environnements privilégiés pour effectuer des actions telles que l'exécution de requêtes et de mutations sur un service Firebase Data Connect pour la gestion groupée des données et d'autres opérations disposant de droits élevés.
Admin SDK vous fournit une API pour appeler des opérations en modes lecture/écriture et 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 Firebase Data Connect sur votre serveur, 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 la directive 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, en plus de vos opérations client, vous organisez vos requêtes et mutations administratives dans des fichiers sources .gql
à importer dans des scripts d'administration, Firebase vous recommande de marquer les opérations administratives sans niveau d'accès d'autorisation, ou d'être plus explicite et de les définir comme 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 prototypage et de test, il peut être utile d'effectuer un ensemencement de données et d'autres opérations sur les données locales. Admin SDK vous permet de simplifier vos workflows, 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
Le Admin SDK est fourni pour les opérations privilégiées sur vos données critiques.
L'API pour 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
La gestion des données utilisateur est un cas d'utilisation courant de Admin SDK.
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
- Consultez la documentation de l'API Admin SDK.
- Utilisez la CLI Firebase et la console Google Cloud pour d'autres opérations de gestion de projet, comme la gestion des schémas et des connecteurs et la gestion des services et des bases de données.