Admin SDK mit Data Connect verwenden

Die Firebase Admin SDK ist eine Reihe von Serverbibliotheken, mit denen Sie aus privilegierten Umgebungen mit Firebase interagieren können, um Aktionen wie Abfragen und Mutationen für einen Firebase Data Connect-Dienst zur Bulk-Datenverwaltung und andere Vorgänge mit erhöhten Berechtigungen auszuführen.

Das Admin SDK bietet Ihnen eine API zum Aufrufen von Vorgängen sowohl im Lese-/Schreibmodus als auch im Lesemodus. Bei schreibgeschützten Vorgängen können Sie Verwaltungsfunktionen implementieren, mit denen keine Daten in Ihren Datenbanken geändert werden können.

Admin SDK einrichten

Wenn Sie Firebase Data Connect auf Ihrem Server verwenden möchten, müssen Sie zuerst die Admin SDK für Node.js installieren und einrichten.

Admin SDK in Ihren Scripts initialisieren

Um das SDK zu initialisieren, importieren Sie die Data Connect-Erweiterungen und deklarieren Sie die ID und den Speicherort Ihres Projektdiensts.


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'
});

Abfragen und Mutationen zur Verwendung mit dem Admin SDK entwerfen

Die Admin SDK ist für das Testen von Data Connect-Vorgängen unter Berücksichtigung der folgenden Aspekte nützlich.

SDK und @auth(level: NO_ACCESS)-Vorgangsanweisung

Da Admin SDK mit Berechtigungen arbeitet, kann es alle Abfragen und Mutationen unabhängig von den Zugriffsebenen ausführen, die mit @auth-Direktiven festgelegt wurden, einschließlich der Ebene NO_ACCESS.

Wenn Sie neben Ihren Client-Vorgängen auch administrative Abfragen und Mutationen in .gql-Quelldateien für den Import in Verwaltungsscripts organisieren, sollten Sie die administrativen Vorgänge gemäß den Firebase-Empfehlungen ohne Autorisierungszugriffsebene kennzeichnen oder sie als NO_ACCESS festlegen. In beiden Fällen wird verhindert, dass solche Vorgänge von Clients oder in anderen nicht privilegierten Kontexten ausgeführt werden.

SDK mit dem Data Connect-Emulator verwenden

In Prototyp- und Testumgebungen kann es hilfreich sein, Daten-Seeding und andere Vorgänge für lokale Daten durchzuführen. Mit Admin SDK können Sie Ihre Workflows vereinfachen, da Authentifizierung und Autorisierung für lokale Abläufe ignoriert werden.

Die Firebase Admin SDKs stellen automatisch eine Verbindung zum Data Connect-Emulator her, wenn die Umgebungsvariable DATA_CONNECT_EMULATOR_HOST festgelegt ist:

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

Weitere Informationen finden Sie unter:

Gängige Anwendungsfälle implementieren

Der Admin SDK wird für privilegierte Vorgänge auf Ihre kritischen Daten bereitgestellt.

Die API für Data Connect besteht aus einer Lese-Schreib-executeGraphql-Schnittstelle und einer schreibgeschützten executeGraphqlRead-Schnittstelle.

Nutzerdaten verwalten

Ein typischer Anwendungsfall für die Admin SDK ist die Verwaltung von Nutzerdaten.

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" } } }

Nächste Schritte