Используйте Admin SDK с Data Connect, Используйте Admin SDK с Data Connect

Firebase Admin SDK — это набор серверных библиотек, который позволяет вам взаимодействовать с Firebase из привилегированных сред для выполнения таких действий, как выполнение запросов и изменений в службе Firebase Data Connect для массового управления данными и других операций с повышенными привилегиями.

Admin SDK предоставляет API для вызова операций как в режимах чтения/записи, так и в режимах только чтения. Благодаря операциям только для чтения вы можете быть спокойны за реализацию административных функций, которые не могут изменять данные в ваших базах данных.

Настройка SDK администратора

Чтобы начать использовать Firebase Data Connect на своем сервере, вам сначала необходимо установить и настроить Admin SDK для Node.js.

Инициализируйте Admin SDK в своих сценариях.

Чтобы инициализировать SDK, импортируйте расширения Data Connect и укажите идентификатор и местоположение службы вашего проекта.


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

Создавайте запросы и мутации для использования с Admin SDK

Admin SDK полезен для тестирования операций Data Connect , учитывая следующие соображения.

Понимание операционной директивы SDK и @auth(level: NO_ACCESS)

Поскольку Admin SDK работает с привилегиями, он может выполнять любые ваши запросы и изменения независимо от уровней доступа, установленных с помощью директив @auth , включая уровень NO_ACCESS .

Если наряду с вашими клиентскими операциями вы организуете свои административные запросы и изменения в исходных файлах .gql для импорта в административные сценарии, Firebase рекомендует вам пометить административные операции без какого-либо уровня авторизации доступа или, возможно, указать более явно и установить их как NO_ACCESS . В любом случае это предотвращает выполнение таких операций с клиентов или в других непривилегированных контекстах.

Используйте SDK с эмулятором Data Connect

В прототипных и тестовых средах может быть полезно выполнить заполнение данных и другие операции с локальными данными. Admin SDK позволяет упростить рабочие процессы, поскольку он игнорирует аутентификацию и авторизацию для локальных потоков.

SDK Firebase Admin автоматически подключается к эмулятору Data Connect , когда установлена ​​переменная среды DATA_CONNECT_EMULATOR_HOST :

export DATA_CONNECT_EMULATOR_HOST="127.0.0.1:8080"

Для получения дополнительной информации см.:

Реализация распространенных случаев использования

Admin SDK предназначен для привилегированных операций с вашими критически важными данными.

API для Data Connect состоит из интерфейса executeGraphql для чтения и записи и интерфейса executeGraphqlRead доступного только для чтения.

Управление данными пользователя

Типичным вариантом использования Admin SDK является управление пользовательскими данными.

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

Что дальше?