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

Firebase Admin SDK to zestaw bibliotek serwera, który umożliwia interakcję z Firebase z przywilegium dostępu do wykonywania działań takich jak wykonywanie zapytań i mutacji w usłudze Firebase Data Connect na potrzeby zbiorczego zarządzania danymi i innych operacji z podwyższonymi uprawnieniami.

Usługa 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.

Inicjowanie pakietu Admin SDK w skryptach

Aby zainicjować pakiet SDK, zaimportuj rozszerzenia Data Connect i ogłoś identyfikator usługi oraz lokalizację projektu.


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

projektowanie zapytań i mutacji do użycia z usługą Admin SDK,

Funkcja Admin SDK jest przydatna do testowania operacji Data Connect, biorąc pod uwagę te kwestie.

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 oprócz operacji klienta porządkujesz administracyjnego zapytania i mutacje w plikach źródłowych .gql, aby importować je do skryptów administracyjnych, Firebase zaleca oznaczenie operacji administracyjnych bez poziomu dostępu na potrzeby autoryzacji lub bardziej bezpośrednie i jednoznaczne ustawienie ich jako NO_ACCESS. W obu przypadkach zapobiega to wykonywaniu takich operacji przez klientów lub w innych kontekstach bez uprawnień.

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 upraszcza przepływy pracy, ponieważ ignoruje uwierzytelnianie i autoryzację w przypadku przepływów lokalnych.

Pakiety Firebase Admin SDK automatycznie łączą się z emulatorem Data Connect po ustawieniu zmiennej środowiskowej 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

Admin SDK jest udostępniany do operacji uprzywilejowanych dotyczących Twoich 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 przypadkiem użycia funkcji Admin SDK jest zarządzanie danymi użytkownika.

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?