Admin SDK mit Data Connect verwenden

Die Firebase Admin SDK besteht aus einer Reihe von Serverbibliotheken, über die Sie mit Firebase aus privilegierten Umgebungen, um Aktionen wie das Ausführen von Abfragen auszuführen und Mutationen in einem Firebase Data Connect-Dienst zur Bulk-Datenverwaltung ausführen und andere Vorgänge mit erweiterten Berechtigungen.

Mit der Admin SDK erhalten Sie eine API zum Aufrufen von Vorgängen in beiden Lese-/Schreibmodus und Lesemodus. Mit den schreibgeschützten Vorgängen haben Sie die Verwaltungsfunktionen zu implementieren, die Daten nicht verändern können in Ihren Datenbanken.

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 Skripts 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 für die Admin SDK entwerfen

Die Admin SDK ist nützlich zum Testen von Data Connect-Vorgängen, da die folgenden Überlegungen an.

Informationen zur SDK- und @auth(level: NO_ACCESS)-Vorgangsrichtlinie

Da Admin SDK mit Berechtigungen arbeitet, kann es alle Ihre Abfragen und Mutationen unabhängig von den Zugriffsebenen, die mit @auth-Anweisungen 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 dadurch verhindert, dass solche Vorgänge aus dem oder in anderen nicht privilegierten Kontexten.

SDK mit dem Data Connect-Emulator verwenden

In Prototypen- und Testumgebungen kann es hilfreich sein, anderen Operationen mit lokalen Daten durchfü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 her Emulator, 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 einem nicht schreibgeschützten executeGraphql und eine schreibgeschützte executeGraphqlRead-Schnittstelle.

Nutzerdaten verwalten

Ein typischer Anwendungsfall für 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