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" } } }
Что дальше?
- Ознакомьтесь с API для Admin SDK .
- Используйте интерфейс командной строки Firebase и консоль Google Cloud для других операций управления проектами, таких как управление схемами и соединителями , а также управление службами и базами данных .