Firebase Admin SDK es un conjunto de bibliotecas de servidor que te permite interactuar con Firebase desde entornos con privilegios para realizar acciones como ejecutar consultas y mutaciones en un servicio de Firebase Data Connect para la administración masiva de datos y otras operaciones con privilegios elevados.
Admin SDK te proporciona una API para llamar a operaciones en los modos de lectura y escritura, y de solo lectura. Con las operaciones de solo lectura, puedes implementar funciones administrativas que no pueden modificar los datos de tus bases de datos.
Configuración del SDK de Admin
Para comenzar a usar Firebase Data Connect en tu servidor, primero deberás instalar y configurar Admin SDK para Node.js.
Inicializa el SDK de Admin en tus secuencias de comandos
Para inicializar el SDK, importa las extensiones de Data Connect y declara el ID y la ubicación del servicio de tu proyecto.
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'
});
Diseña consultas y mutaciones para usar con Admin SDK
Admin SDK es útil para probar operaciones Data Connect, teniendo en cuenta las siguientes consideraciones.
Comprende el SDK y la directiva de operación @auth(level: NO_ACCESS)
Dado que Admin SDK opera con privilegios, puede ejecutar cualquiera de tus consultas y mutaciones, independientemente de los niveles de acceso establecidos con las directivas @auth
, incluido el nivel NO_ACCESS
.
Si, junto con tus operaciones de cliente, organizas tus consultas
y mutaciones administrativas en archivos fuente .gql
para importarlas a secuencias de comandos administrativas,
Firebase recomienda que marques las operaciones administrativas sin ningún
nivel de acceso de autorización o, tal vez, que seas más explícito y las configures como
NO_ACCESS
. De cualquier manera, esto evita que las operaciones se ejecuten desde clientes o en otros contextos sin privilegios.
Usa el SDK con el emulador de Data Connect
En los entornos de prototipos y pruebas, puede ser útil realizar la propagación de datos y otras operaciones en los datos locales. Admin SDK te permite simplificar tus flujos de trabajo, ya que ignora la autenticación y la autorización para los flujos locales.
Los SDKs de Firebase Admin se conectan automáticamente al emulador de Data Connect
cuando se establece la variable de entorno DATA_CONNECT_EMULATOR_HOST
:
export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"
Para obtener más información, consulta:
- La guía para la propagación de datos en el desarrollo local
- La documentación del emulador de Data Connect.
Implementa casos de uso comunes
Admin SDK se proporciona para operaciones con privilegios en tus datos críticos.
La API de Data Connect consta de una interfaz executeGraphql
de lectura y escritura, y una interfaz executeGraphqlRead
de solo lectura.
Administra los datos del usuario
Un caso de uso típico para Admin SDK es administrar los datos del usuario.
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" } } }
Próximos pasos
- Revisa la API de Admin SDK.
- Usa la CLI de Firebase y la consola de Google Cloud para otras operaciones de administración de proyectos, como administrar esquemas y conectores y administrar servicios y bases de datos.