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.
Die Admin SDK bietet eine API, mit der Vorgänge sowohl im Lese-/Schreib- als auch im schreibgeschützten Modus aufgerufen werden können. 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 für die 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 Prototypen- und Testumgebungen kann es hilfreich sein, Daten zu erzeugen und andere Vorgänge auf lokalen Daten auszufü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
- Sehen Sie sich die API für die Admin SDK an.
- Verwenden Sie die Firebase CLI und die Google Cloud Console für andere Projektverwaltungsvorgänge, z. B. zum Verwalten von Schemas und Verbindungen und zum Verwalten von Diensten und Datenbanken.