Usar o SDK Admin com o Data Connect

O Firebase Admin SDK é um conjunto de bibliotecas de servidor que permite interagir com o Firebase usando ambientes privilegiados para realizar ações como consultas e mutações em um serviço Firebase Data Connect para gerenciamento de dados em massa e outras operações com privilégios elevados.

O Admin SDK fornece uma API para chamar operações nos modos de leitura/gravação e somente leitura. Com as operações somente leitura, você tem a tranquilidade de implementar funções administrativas que não podem modificar dados nos seus bancos de dados.

Configuração do SDK Admin

Para começar a usar o Firebase Data Connect no seu servidor, primeiro você precisa instalar e configurar o Admin SDK para Node.js.

Inicializar o SDK Admin nos scripts

Para inicializar o SDK, importe as extensões Data Connect e declare o ID e o local do serviço do projeto.


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

Projetar consultas e mutações para usar com o Admin SDK

O Admin SDK é útil para testar operações Data Connect, considerando as seguintes considerações.

Entender a diretiva de operação do SDK e @auth(level: NO_ACCESS)

Como o Admin SDK opera com privilégios, ele pode executar qualquer uma das suas consultas e mutações, independentemente dos níveis de acesso definidos usando as diretivas @auth, incluindo o nível NO_ACCESS.

Se, junto com as operações do cliente, você organizar suas consultas administrativas e mutações em arquivos de origem .gql para importação em scripts administrativos, o Firebase recomenda marcar as operações administrativas sem nenhum nível de acesso de autorização ou, talvez, ser mais explícita e defini-las como NO_ACCESS. De qualquer forma, isso impede que essas operações sejam executadas de clientes ou em outros contextos sem privilégios.

Usar o SDK com o emulador Data Connect

Em ambientes de protótipo e teste, pode ser útil realizar a semeadura de dados e outras operações em dados locais. O Admin SDK simplifica seus fluxos de trabalho, já que ignora a autenticação e a autorização para fluxos locais.

Os SDKs Admin do Firebase se conectam automaticamente ao emulador do Data Connect quando a variável de ambiente DATA_CONNECT_EMULATOR_HOST está definida:

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

Confira mais informações:

Implemente casos de uso comuns

O Admin SDK é fornecido para operações privilegiadas nos seus dados críticos.

A API para Data Connect consiste em uma interface executeGraphql de leitura e gravação e uma interface executeGraphqlRead somente leitura.

Gerenciar dados do usuário

Um caso de uso típico do Admin SDK é gerenciar dados do usuário.

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

A seguir