Utilizzare l'SDK Admin con Data Connect

Firebase Admin SDK è un insieme di librerie server che ti consente di interagire con Firebase da ambienti con privilegi per eseguire azioni come l'esecuzione di query e mutazioni su un servizio Firebase Data Connect per la gestione collettiva dei dati e altre operazioni con privilegi elevati.

Admin SDK fornisce un'API per chiamare le operazioni sia in modalità di lettura/scrittura sia in modalità di sola lettura. Con le operazioni di sola lettura, puoi implementare funzioni amministrative che non possono modificare i dati nei tuoi database in tutta sicurezza.

Configurazione dell'SDK Admin

Per iniziare a utilizzare Firebase Data Connect sul tuo server, devi prima installare e configurare Admin SDK per Node.js.

Inizializzare l'SDK Admin negli script

Per inizializzare l'SDK, importa le estensioni Data Connect e dichiara l'ID servizio del progetto e la località.


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

Progetta query e mutazioni da utilizzare con Admin SDK

Admin SDK è utile per testare le operazioni Data Connect, date le seguenti considerazioni.

Informazioni sull'SDK e sulla direttiva di operazione @auth(level: NO_ACCESS)

Poiché Admin SDK funziona con privilegi, può eseguire qualsiasi query e mutazione a prescindere dai livelli di accesso impostati utilizzando le istruzioni @auth, incluso il livello NO_ACCESS.

Se, oltre alle operazioni client, organizzi le query amministrative e le mutazioni nei file di origine .gql per l'importazione negli script amministrativi, Firebase consiglia di contrassegnare le operazioni amministrative senza alcun livello di accesso all'autorizzazione o di essere più esplicito e impostarle come NO_ACCESS. In entrambi i casi, si impedisce l'esecuzione di queste operazioni dai client o in altri contesti non privilegiati.

Utilizzare l'SDK con l'emulatore Data Connect

In ambienti di prototipo e test, può essere utile eseguire il seeding dei dati e altre operazioni sui dati locali. Admin SDK consente di semplificare i flussi di lavoro, in quanto ignora l'autenticazione e l'autorizzazione per i flussi locali.

Gli SDK Firebase Admin si connettono automaticamente all'Data Connect emulatore quando è impostata la variabile di ambiente DATA_CONNECT_EMULATOR_HOST:

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

Per ulteriori informazioni, vedi:

Implementare casi d'uso comuni

Admin SDK viene fornito per le operazioni con privilegi sui dati critici.

L'API per Data Connect è costituita da un'interfaccia executeGraphql di lettura/scrittura e da un'interfaccia executeGraphqlRead di sola lettura.

Gestire i dati utente

Un caso d'uso tipico per Admin SDK è la gestione dei dati utente.

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" } } }

Quali sono i passaggi successivi?