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:9399"
Для получения дополнительной информации см.:
Реализация распространенных случаев использования
Admin SDK предназначен для привилегированных операций с вашими критически важными данными.
API для Data Connect состоит из интерфейса executeGraphql
для чтения и записи и интерфейса executeGraphqlRead
доступного только для чтения.
Управление данными пользователя
Типичным вариантом использования Admin SDK является управление пользовательскими данными.
Использовать административные учетные данные
Самый простой подход — получить доступ к пользовательским данным с использованием учетных данных администратора.
// User can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";
interface UserData {
user: {
id: string;
name: string;
};
}
export interface UserVariables {
id: string;
}
const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };
// executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);
// executeGraphqlRead (similar to previous sample but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Олицетворение учетных данных пользователя
Существуют также случаи использования, когда вы хотите, чтобы ваши сценарии изменяли пользовательские данные на основе ограниченных учетных данных от имени конкретного пользователя. Этот подход соблюдает принцип наименьших привилегий.
Чтобы использовать этот интерфейс, соберите информацию из настроенного токена аутентификации JWT, который соответствует формату токена Authentication . Также см. руководство по пользовательским токенам .
// Get the current user's data
const queryGetUserImpersonation = `
query getUser @auth(level: USER) {
user(key: {uid_expr: "auth.uid"}) {
id,
name
}
}`;
// Impersonate a user with the specified auth claims
const optionsAuthenticated: GraphqlOptions<undefined> = {
impersonate: {
authClaims: {
sub: 'QVBJcy5ndXJ1'
}
}
};
// executeGraphql with impersonated authenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetUserImpersonation, optionsAuthenticated);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Управляйте общедоступными данными
Вы можете работать с общедоступными данными с помощью SDK, выдавая себя за неаутентифицированного пользователя.
// Query to get posts, with authentication level PUBLIC
const queryGetPostsImpersonation = `
query getPosts @auth(level: PUBLIC) {
posts {
description
}
}`;
// Attempt to access data as an unauthenticated user
const optionsUnauthenticated: GraphqlOptions<undefined> = {
impersonate: {
unauthenticated: true
}
};
// executeGraphql with impersonated unauthenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetPostsImpersonation, optionsUnauthenticated);
Что дальше?
- Ознакомьтесь с API для Admin SDK .
- Используйте интерфейс командной строки Firebase и консоль Google Cloud для других операций управления проектами, таких как управление схемами и соединителями , а также управление службами и базами данных .
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:9399"
Для получения дополнительной информации см.:
Реализация распространенных случаев использования
Admin SDK предназначен для привилегированных операций с вашими критически важными данными.
API для Data Connect состоит из интерфейса executeGraphql
для чтения и записи и интерфейса executeGraphqlRead
доступного только для чтения.
Управление данными пользователя
Типичным вариантом использования Admin SDK является управление пользовательскими данными.
Использовать административные учетные данные
Самый простой подход — получить доступ к пользовательским данным с использованием учетных данных администратора.
// User can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";
interface UserData {
user: {
id: string;
name: string;
};
}
export interface UserVariables {
id: string;
}
const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };
// executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);
// executeGraphqlRead (similar to previous sample but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Олицетворение учетных данных пользователя
Существуют также случаи использования, когда вы хотите, чтобы ваши сценарии изменяли пользовательские данные на основе ограниченных учетных данных от имени конкретного пользователя. Этот подход соблюдает принцип наименьших привилегий.
Чтобы использовать этот интерфейс, соберите информацию из настроенного токена аутентификации JWT, который соответствует формату токена Authentication . Также см. руководство по пользовательским токенам .
// Get the current user's data
const queryGetUserImpersonation = `
query getUser @auth(level: USER) {
user(key: {uid_expr: "auth.uid"}) {
id,
name
}
}`;
// Impersonate a user with the specified auth claims
const optionsAuthenticated: GraphqlOptions<undefined> = {
impersonate: {
authClaims: {
sub: 'QVBJcy5ndXJ1'
}
}
};
// executeGraphql with impersonated authenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetUserImpersonation, optionsAuthenticated);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Управляйте общедоступными данными
Вы можете работать с общедоступными данными с помощью SDK, выдавая себя за неаутентифицированного пользователя.
// Query to get posts, with authentication level PUBLIC
const queryGetPostsImpersonation = `
query getPosts @auth(level: PUBLIC) {
posts {
description
}
}`;
// Attempt to access data as an unauthenticated user
const optionsUnauthenticated: GraphqlOptions<undefined> = {
impersonate: {
unauthenticated: true
}
};
// executeGraphql with impersonated unauthenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetPostsImpersonation, optionsUnauthenticated);
Что дальше?
- Ознакомьтесь с API для Admin SDK .
- Используйте интерфейс командной строки Firebase и консоль Google Cloud для других операций управления проектами, таких как управление схемами и соединителями , а также управление службами и базами данных .
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:9399"
Для получения дополнительной информации см.:
Реализация распространенных случаев использования
Admin SDK предназначен для привилегированных операций с вашими критически важными данными.
API для Data Connect состоит из интерфейса executeGraphql
для чтения и записи и интерфейса executeGraphqlRead
доступного только для чтения.
Управление данными пользователя
Типичным вариантом использования Admin SDK является управление пользовательскими данными.
Использовать административные учетные данные
Самый простой подход — получить доступ к пользовательским данным с использованием учетных данных администратора.
// User can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";
interface UserData {
user: {
id: string;
name: string;
};
}
export interface UserVariables {
id: string;
}
const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };
// executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);
// executeGraphqlRead (similar to previous sample but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Олицетворение учетных данных пользователя
Существуют также случаи использования, когда вы хотите, чтобы ваши сценарии изменяли пользовательские данные на основе ограниченных учетных данных от имени конкретного пользователя. Этот подход соблюдает принцип наименьших привилегий.
Чтобы использовать этот интерфейс, соберите информацию из настроенного токена аутентификации JWT, который соответствует формату токена Authentication . Также см. руководство по пользовательским токенам .
// Get the current user's data
const queryGetUserImpersonation = `
query getUser @auth(level: USER) {
user(key: {uid_expr: "auth.uid"}) {
id,
name
}
}`;
// Impersonate a user with the specified auth claims
const optionsAuthenticated: GraphqlOptions<undefined> = {
impersonate: {
authClaims: {
sub: 'QVBJcy5ndXJ1'
}
}
};
// executeGraphql with impersonated authenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetUserImpersonation, optionsAuthenticated);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Управляйте общедоступными данными
Вы можете работать с общедоступными данными с помощью SDK, выдавая себя за неаутентифицированного пользователя.
// Query to get posts, with authentication level PUBLIC
const queryGetPostsImpersonation = `
query getPosts @auth(level: PUBLIC) {
posts {
description
}
}`;
// Attempt to access data as an unauthenticated user
const optionsUnauthenticated: GraphqlOptions<undefined> = {
impersonate: {
unauthenticated: true
}
};
// executeGraphql with impersonated unauthenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetPostsImpersonation, optionsUnauthenticated);
Что дальше?
- Ознакомьтесь с API для Admin SDK .
- Используйте интерфейс командной строки Firebase и консоль Google Cloud для других операций управления проектами, таких как управление схемами и соединителями , а также управление службами и базами данных .
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:9399"
Для получения дополнительной информации см.:
Реализация распространенных случаев использования
Admin SDK предназначен для привилегированных операций с вашими критически важными данными.
API для Data Connect состоит из интерфейса executeGraphql
для чтения и записи и интерфейса executeGraphqlRead
доступного только для чтения.
Управление данными пользователя
Типичным вариантом использования Admin SDK является управление пользовательскими данными.
Использовать административные учетные данные
Самый простой подход — получить доступ к пользовательским данным с использованием учетных данных администратора.
// User can be publicly accessible, or restricted to admins
const query = "query getProfile(id: AuthID) { user(id: $id) { id name } }";
interface UserData {
user: {
id: string;
name: string;
};
}
export interface UserVariables {
id: string;
}
const options:GraphqlOptions<UserVariables> = { variables: { id: "QVBJcy5ndXJ1" } };
// executeGraphql
const gqlResponse = await dataConnect.executeGraphql<UserData, UserVariables>(query, options);
// executeGraphqlRead (similar to previous sample but only for read operations)
const gqlResponse = await dataConnect.executeGraphqlRead<UserData, UserVariables>(query, options);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Олицетворение учетных данных пользователя
Существуют также случаи использования, когда вы хотите, чтобы ваши сценарии изменяли пользовательские данные на основе ограниченных учетных данных от имени конкретного пользователя. Этот подход соблюдает принцип наименьших привилегий.
Чтобы использовать этот интерфейс, соберите информацию из настроенного токена аутентификации JWT, который соответствует формату токена Authentication . Также см. руководство по пользовательским токенам .
// Get the current user's data
const queryGetUserImpersonation = `
query getUser @auth(level: USER) {
user(key: {uid_expr: "auth.uid"}) {
id,
name
}
}`;
// Impersonate a user with the specified auth claims
const optionsAuthenticated: GraphqlOptions<undefined> = {
impersonate: {
authClaims: {
sub: 'QVBJcy5ndXJ1'
}
}
};
// executeGraphql with impersonated authenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetUserImpersonation, optionsAuthenticated);
// gqlResponse -> { "data": { "user": { "id": "QVBJcy5ndXJ1", "name": "Fred" } } }
Управляйте общедоступными данными
Вы можете работать с общедоступными данными с помощью SDK, выдавая себя за неаутентифицированного пользователя.
// Query to get posts, with authentication level PUBLIC
const queryGetPostsImpersonation = `
query getPosts @auth(level: PUBLIC) {
posts {
description
}
}`;
// Attempt to access data as an unauthenticated user
const optionsUnauthenticated: GraphqlOptions<undefined> = {
impersonate: {
unauthenticated: true
}
};
// executeGraphql with impersonated unauthenticated user scope
const gqlResponse = await dataConnect.executeGraphql<UserData, undefined>(queryGetPostsImpersonation, optionsUnauthenticated);
Что дальше?
- Ознакомьтесь с API для Admin SDK .
- Используйте интерфейс командной строки Firebase и консоль Google Cloud для других операций управления проектами, таких как управление схемами и соединителями , а также управление службами и базами данных .