Używanie pakietu Admin SDK z usługą Data Connect

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:

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?