Firebase Admin SDK to zbiór bibliotek serwera umożliwiający interakcję Firebase ze środowisk o podwyższonych uprawnieniach do wykonywania działań takich jak zapytania i mutacje w usłudze Firebase Data Connect na potrzeby zbiorczego zarządzania danymi oraz innych operacji o podwyższonych uprawnieniach.
Interfejs Admin SDK udostępnia interfejs API do wywoływania operacji w trybie odczytu/zapisu i tylko do odczytu. Dzięki operacjom tylko do odczytu możesz mieć pewność, że funkcje administracyjne nie mogą modyfikować danych w Twoich bazach danych.
Konfiguracja pakietu Admin SDK
Aby zacząć korzystać z Firebase Data Connect na serwerze, musisz najpierw zainstalować i skonfigurować Admin SDK w Node.js.
Inicjalizacja pakietu Admin SDK w skryptach
Aby zainicjować pakiet SDK, zaimportuj rozszerzenia Data Connect i zadeklarować identyfikator usługi projektu i lokalizację.
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'
});
Projektuj zapytania i mutacje do użycia z Admin SDK
Admin SDK przydaje się do testowania operacji Data Connect, przy danym następujące uwagi.
Informacje o pakiecie SDK i instrukcji operacji @auth(level: NO_ACCESS)
Ponieważ Admin SDK działa z uprawnieniami, może wykonywać dowolne zapytania i mutacje niezależnie od poziomów dostępu ustawionych za pomocą dyrektyw @auth
, w tym na poziomie NO_ACCESS
.
Jeśli wraz z obsługą klienta porządkujesz zapytania administracyjne,
i mutacje w .gql
plikach źródłowych w celu zaimportowania do skryptów administracyjnych,
Firebase zaleca oznaczenie operacji administracyjnych bez żadnych
poziom dostępu autoryzacyjnego lub
bardziej sprecyzowaną i ustawioną
NO_ACCESS
W obu przypadkach zapobiega to wykonywaniu takich operacji w
klientów lub w innych kontekstach nieobjętych tajemnicami.
Używanie pakietu SDK z emulatorem Data Connect
W środowiskach prototypów i testów może być przydatne wykonanie zasiewu danych i innych operacji na danych lokalnych. Admin SDK pozwala uprościć ponieważ ignoruje uwierzytelnianie i autoryzację w przypadku przepływów lokalnych.
Pakiety Firebase Admin SDK automatycznie łączą się z: Data Connect
w emulatorze, gdy ustawiona jest zmienna środowiskowa DATA_CONNECT_EMULATOR_HOST
:
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
Aby dowiedzieć się więcej, zobacz:
- Przewodnik wdrażania danych w programie lokalnym
- dokumentacja emulatora Data Connect.
Realizacja typowych przypadków użycia
Zasób Admin SDK jest przeznaczony do uprzywilejowanych operacji na danych krytycznych.
Interfejs API usługi Data Connect składa się z interfejsu executeGraphql
do odczytu i zapisu oraz interfejsu executeGraphqlRead
tylko do odczytu.
Zarządzanie danymi użytkowników
Typowym zastosowaniem Admin SDK jest zarządzanie danymi użytkowników.
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" } } }
Co dalej?
- Zapoznaj się z interfejsem API aplikacji Admin SDK.
- Użyj interfejsu wiersza poleceń Firebase i konsoli Google Cloud na potrzeby innego projektu operacje zarządzania, takie jak zarządzanie schematami i oprogramowaniem sprzęgającym, oraz zarządzanie usługami i bazami danych.