Установите расширение Firebase

Вы можете установить (и управлять ) любым официальным расширением Firebase , используя консоль Firebase , интерфейс командной строки Firebase CLI или автоматически сгенерированный SDK.

Обязательно ознакомьтесь с различиями в поддерживаемых действиях для каждого метода установки.


Установка с использованием автоматически созданного SDK — это новый вариант установки расширений и управления ими. С помощью этой опции вы используете CLI для автоматического создания Node SDK для конкретной версии расширения, которую вы можете импортировать как обычную зависимость в своих облачных функциях JavaScript или TypeScript.

Этот автоматически созданный SDK содержит:

  • Интерфейс, представляющий параметры расширения и объявления типов для большинства непримитивных типов параметров.
  • Функция-конструктор, инициализирующая экземпляр расширения.
  • Класс расширения, содержащий триггеры Eventarc для всех событий, создаваемых расширением.

После создания SDK расширения вся настройка расширения происходит в коде.

Использование этого варианта установки может значительно упростить управление несколькими экземплярами расширений, особенно в проектах, которые содержат облачные функции, определенные вне расширений.


Чтобы устанавливать расширения или управлять ими, вам должна быть назначена одна из этих ролей: владелец, редактор или администратор Firebase .

Чтобы установить расширение, ваш проект должен находиться в плане Blaze (оплата по мере использования). Хотя за установку расширения плата не взимается, с вас может взиматься плата за использование служб Firebase или облачных служб, таких как Cloud Secret Manager , если ваше использование превышает уровень бесплатного пользования службами.

Прежде чем начать

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект .

  2. Если вы еще этого не сделали, обновите свой проект до плана Blaze (оплата по мере использования).

  3. Установите или обновите последнюю версию Firebase CLI.

  4. Запишите либо идентификатор вашего проекта Firebase, либо ранее настроенный псевдоним проекта.

Шаг 1. Просмотрите подробную информацию о расширении.

Этот шаг не является обязательным, но настоятельно рекомендуется.

Перед установкой Firebase Extension мы рекомендуем вам просмотреть подробную информацию о расширении, включая:

  • Как работает расширение, какие задачи перед установкой и подробности о расширении
  • Общая идентификационная информация и описание
  • Требуется ли для задач расширения учетная запись для выставления счетов
  • Сервисы Google (API) и роли доступа, необходимые для работы
  • Ресурсы, созданные для расширения (например, функции).
  • Описания настраиваемых пользователем параметров

Чтобы просмотреть подробную информацию о расширении:

  1. Убедитесь, что вы настроили свою среду и выбрали расширение .

  2. Запустите команду Extension-info из любого места вашего компьютера:

    firebase ext:info publisher-id/extension-id

    Аргументы publisher-id и extension-id являются обязательными. Их можно найти на странице сведений о предварительной установке расширения .

Шаг 2. Установите расширение.

Перед установкой просмотрите основные характеристики расширения (например, включенные API, созданные ресурсы , предоставленный доступ и т. д.) и его требования к выставлению счетов.

Прежде чем продолжить, убедитесь, что вы настроили свою среду и выбрали расширение .

Инициализация облачных функций для Firebase

Если вы начинаете новый проект или ваш проект еще не использует облачные функции для Firebase, запустите init functions :

cd your-project
firebase init functions

Выберите TypeScript или JavaScript в качестве языка функций.

Если в вашем проекте уже инициализированы облачные функции, убедитесь, что вы используете версию 5.1.0 или новее пакета firebase-functions :

cd your-project/functions
npm upgrade --save firebase-functions

Если вы используете ESLint, вы также можете исключить сгенерированные SDK из вашей конфигурации ( .eslintrc.js ):

ignorePatterns: [
  "/generated/**/*", // Ignore generated files.
  // ...
],

Создать SDK расширения

В локальном каталоге Firebase выполните команду ext:sdk:install .

firebase ext:sdk:install publisher-id/extension-id@version

Например, чтобы установить версию 0.1.34 расширения firestore-send-email :

firebase ext:sdk:install firebase/firestore-send-email@0.1.34

publisher-id и extension-id являются обязательными. Их можно найти на странице сведений о предварительной установке расширения на сайте Extensions.dev . Часть @ version необязательна; если вы его пропустите, инструмент установит последнюю версию.

Вы можете указать два варианта:

  • --force : выполните все следующие действия без дополнительного подтверждения:

    • Автоматически сгенерируйте SDK, даже если он уже был создан для того же расширения и версии.
    • Установите автоматически созданный пакет SDK в проекте узла облачных функций.
  • --codebase : имя кодовой базы, в которую нужно добавить SDK. Если не указано, команда добавляет SDK в кодовую базу по умолчанию, functions .

Эта команда создает пакет Node, содержащий SDK, автоматически созданный для расширения, и добавляет его в одну из баз кода Cloud Functions вашего проекта. В базе кода по умолчанию ( functions ) SDK сохраняется в следующем месте:

functions/generated/extensions/publisher-id/extension-id/version

После создания SDK команда спросит, хотите ли вы также установить SDK в свой проект узла облачных функций. Ответьте «Да» на этот запрос.

Настройка экземпляров расширения

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

  1. В источнике Cloud Functions импортируйте конструктор, используя оператор, напечатанный командой ext:sdk:install .

    Машинопись

    Например, если вы создали SDK для расширения firestore-send-email , оператор import будет выглядеть примерно так:

    import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
    

    Если расширению требуются какие-либо секретные значения, например пароли, вам также понадобится функция defineSecret из Cloud Functions SDK:

    import { defineSecret } from "firebase-functions/params";
    

    JavaScript

    Например, если вы создали SDK для расширения firestore-send-email , оператор require будет выглядеть примерно так:

    const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
    

    Если расширению требуются какие-либо секретные значения, например пароли, вам также понадобится функция defineSecret из Cloud Functions SDK:

    const { defineSecret } = require('firebase-functions/params');
    
  2. Для каждого экземпляра, который вы хотите настроить, вызовите функцию конструктора и экспортируйте результат.

    Присвойте каждому экземпляру уникальный идентификатор, содержащий только строчные буквы, цифры и дефисы.

    Машинопись

    export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    JavaScript

    exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    Обратите внимание, что секретные значения необходимо указывать с помощью функции defineSecret .

  3. Затем, чтобы развернуть настроенные вами расширения, запустите:

    firebase deploy --only functions --project=projectId-or-alias

    Применяются все обычные варианты развертывания облачных функций . Например, чтобы развернуть один экземпляр расширения из определенной базы кода:

    firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias

Шаг 3. Завершите настройку после установки.

Некоторые расширения содержат обязательные или дополнительные действия, которые необходимо выполнить перед их использованием. Эти инструкции можно найти на странице сведений о вашем расширении после установки на панели Extensions консоли Firebase (конкретная ссылка на панель управления отображается в терминале после установки).

Вы также можете найти эти инструкции в файле POSTINSTALL.md , включенном в исходный каталог расширения .

Создание ресурсов Firebase

Если вы настроили расширение для использования ресурсов Firebase (коллекций Cloud Firestore , путей Realtime Database , сегментов Cloud Storage ), которые еще не существуют, создайте их перед использованием расширения.

Создание обработчиков событий Eventarc

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

Если вы хотите определить обработчики для любого события, создаваемого расширением, вы можете сделать это, используя методы триггера каждого экземпляра:

Машинопись

export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

JavaScript

exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

Вы должны экспортировать обработчик событий вместе с экземпляром расширения.

После определения обработчика событий и после каждого внесения в него изменений повторно развертывайте и расширение, и обработчик.

Установите несколько экземпляров расширения

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

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

Следующие шаги

,

Вы можете установить (и управлять ) любым официальным расширением Firebase , используя консоль Firebase , интерфейс командной строки Firebase CLI или автоматически сгенерированный SDK.

Обязательно ознакомьтесь с различиями в поддерживаемых действиях для каждого метода установки.


Установка с использованием автоматически созданного SDK — это новый вариант установки расширений и управления ими. С помощью этой опции вы используете CLI для автоматического создания Node SDK для конкретной версии расширения, которую вы можете импортировать как обычную зависимость в своих облачных функциях JavaScript или TypeScript.

Этот автоматически созданный SDK содержит:

  • Интерфейс, представляющий параметры расширения и объявления типов для большинства непримитивных типов параметров.
  • Функция-конструктор, инициализирующая экземпляр расширения.
  • Класс расширения, содержащий триггеры Eventarc для всех событий, создаваемых расширением.

После создания SDK расширения вся настройка расширения происходит в коде.

Использование этого варианта установки может значительно упростить управление несколькими экземплярами расширений, особенно в проектах, которые содержат облачные функции, определенные вне расширений.


Чтобы устанавливать расширения или управлять ими, вам должна быть назначена одна из этих ролей: владелец, редактор или администратор Firebase .

Чтобы установить расширение, ваш проект должен находиться в плане Blaze (оплата по мере использования). Хотя за установку расширения плата не взимается, с вас может взиматься плата за использование служб Firebase или облачных служб, таких как Cloud Secret Manager , если ваше использование превышает уровень бесплатного пользования службами.

Прежде чем начать

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект .

  2. Если вы еще этого не сделали, обновите свой проект до плана Blaze (оплата по мере использования).

  3. Установите или обновите последнюю версию Firebase CLI.

  4. Запишите либо идентификатор вашего проекта Firebase, либо ранее настроенный псевдоним проекта.

Шаг 1. Просмотрите подробную информацию о расширении.

Этот шаг не является обязательным, но настоятельно рекомендуется.

Перед установкой Firebase Extension мы рекомендуем вам просмотреть подробную информацию о расширении, включая:

  • Как работает расширение, какие задачи перед установкой и подробности о расширении
  • Общая идентификационная информация и описание
  • Требуется ли для задач расширения учетная запись для выставления счетов
  • Сервисы Google (API) и роли доступа, необходимые для работы
  • Ресурсы, созданные для расширения (например, функции).
  • Описания настраиваемых пользователем параметров

Чтобы просмотреть подробную информацию о расширении:

  1. Убедитесь, что вы настроили свою среду и выбрали расширение .

  2. Запустите команду Extension-info из любого места вашего компьютера:

    firebase ext:info publisher-id/extension-id

    Аргументы publisher-id и extension-id являются обязательными. Их можно найти на странице сведений о предварительной установке расширения .

Шаг 2. Установите расширение.

Перед установкой просмотрите основные характеристики расширения (например, включенные API, созданные ресурсы , предоставленный доступ и т. д.) и его требования к выставлению счетов.

Прежде чем продолжить, убедитесь, что вы настроили свою среду и выбрали расширение .

Инициализация облачных функций для Firebase

Если вы начинаете новый проект или ваш проект еще не использует облачные функции для Firebase, запустите init functions :

cd your-project
firebase init functions

Выберите TypeScript или JavaScript в качестве языка функций.

Если в вашем проекте уже инициализированы облачные функции, убедитесь, что вы используете версию 5.1.0 или новее пакета firebase-functions :

cd your-project/functions
npm upgrade --save firebase-functions

Если вы используете ESLint, вы также можете исключить сгенерированные SDK из вашей конфигурации ( .eslintrc.js ):

ignorePatterns: [
  "/generated/**/*", // Ignore generated files.
  // ...
],

Создать SDK расширения

В локальном каталоге Firebase выполните команду ext:sdk:install .

firebase ext:sdk:install publisher-id/extension-id@version

Например, чтобы установить версию 0.1.34 расширения firestore-send-email :

firebase ext:sdk:install firebase/firestore-send-email@0.1.34

publisher-id и extension-id являются обязательными. Их можно найти на странице сведений о предварительной установке расширения на сайте Extensions.dev . Часть @ version необязательна; если вы его пропустите, инструмент установит последнюю версию.

Вы можете указать два варианта:

  • --force : выполните все следующие действия без дополнительного подтверждения:

    • Автоматически сгенерируйте SDK, даже если он уже был создан для того же расширения и версии.
    • Установите автоматически созданный пакет SDK в проект узла облачных функций.
  • --codebase : имя кодовой базы, в которую нужно добавить SDK. Если не указано, команда добавляет SDK в кодовую базу по умолчанию, functions .

Эта команда создает пакет Node, содержащий SDK, автоматически созданный для расширения, и добавляет его в одну из баз кода Cloud Functions вашего проекта. В базе кода по умолчанию ( functions ) SDK сохраняется в следующем месте:

functions/generated/extensions/publisher-id/extension-id/version

После создания SDK команда спросит, хотите ли вы также установить SDK в свой проект узла облачных функций. Ответьте «Да» на этот запрос.

Настройка экземпляров расширения

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

  1. В источнике Cloud Functions импортируйте конструктор, используя оператор, напечатанный командой ext:sdk:install .

    Машинопись

    Например, если вы создали SDK для расширения firestore-send-email , оператор import будет выглядеть примерно так:

    import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
    

    Если расширению требуются какие-либо секретные значения, например пароли, вам также понадобится функция defineSecret из Cloud Functions SDK:

    import { defineSecret } from "firebase-functions/params";
    

    JavaScript

    Например, если вы создали SDK для расширения firestore-send-email , оператор require будет выглядеть примерно так:

    const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
    

    Если расширению требуются какие-либо секретные значения, например пароли, вам также понадобится функция defineSecret из Cloud Functions SDK:

    const { defineSecret } = require('firebase-functions/params');
    
  2. Для каждого экземпляра, который вы хотите настроить, вызовите функцию конструктора и экспортируйте результат.

    Присвойте каждому экземпляру уникальный идентификатор, содержащий только строчные буквы, цифры и дефисы.

    Машинопись

    export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    JavaScript

    exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    Обратите внимание, что секретные значения необходимо указывать с помощью функции defineSecret .

  3. Затем, чтобы развернуть настроенные вами расширения, запустите:

    firebase deploy --only functions --project=projectId-or-alias

    Применяются все обычные варианты развертывания облачных функций . Например, чтобы развернуть один экземпляр расширения из определенной базы кода:

    firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias

Шаг 3. Завершите настройку после установки.

Некоторые расширения содержат обязательные или дополнительные действия, которые необходимо выполнить перед их использованием. Эти инструкции можно найти на странице сведений о вашем расширении после установки на панели Extensions консоли Firebase (конкретная ссылка на панель мониторинга отображается в терминале после установки).

Вы также можете найти эти инструкции в файле POSTINSTALL.md , включенном в исходный каталог расширения .

Создание ресурсов Firebase

Если вы настроили расширение для использования ресурсов Firebase (коллекций Cloud Firestore , путей Realtime Database , сегментов Cloud Storage ), которые еще не существуют, создайте их перед использованием расширения.

Создание обработчиков событий Eventarc

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

Если вы хотите определить обработчики для любого события, создаваемого расширением, вы можете сделать это, используя методы триггера каждого экземпляра:

Машинопись

export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

JavaScript

exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

Вы должны экспортировать обработчик событий вместе с экземпляром расширения.

После определения обработчика событий и после каждого внесения в него изменений повторно развертывайте и расширение, и обработчик.

Установите несколько экземпляров расширения

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

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

Следующие шаги

,

Вы можете установить (и управлять ) любым официальным расширением Firebase , используя консоль Firebase , интерфейс командной строки Firebase CLI или автоматически сгенерированный SDK.

Обязательно ознакомьтесь с различиями в поддерживаемых действиях для каждого метода установки.


Установка с использованием автоматически созданного SDK — это новый вариант установки расширений и управления ими. С помощью этой опции вы используете CLI для автоматического создания Node SDK для конкретной версии расширения, которую вы можете импортировать как обычную зависимость в свои облачные функции JavaScript или TypeScript.

Этот автоматически созданный SDK содержит:

  • Интерфейс, представляющий параметры расширения и объявления типов для большинства непримитивных типов параметров.
  • Функция-конструктор, инициализирующая экземпляр расширения.
  • Класс расширения, содержащий триггеры Eventarc для всех событий, создаваемых расширением.

После создания SDK расширения вся настройка расширения происходит в коде.

Использование этого варианта установки может значительно упростить управление несколькими экземплярами расширений, особенно в проектах, которые содержат облачные функции, определенные вне расширений.


Чтобы устанавливать расширения или управлять ими, вам должна быть назначена одна из этих ролей: владелец, редактор или администратор Firebase .

Чтобы установить расширение, ваш проект должен находиться в плане Blaze (оплата по мере использования). Хотя за установку расширения плата не взимается, с вас может взиматься плата за использование служб Firebase или облачных служб, таких как Cloud Secret Manager , если ваше использование превышает уровень бесплатного пользования службами.

Прежде чем начать

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект .

  2. Если вы еще этого не сделали, обновите свой проект до плана Blaze (оплата по мере использования).

  3. Установите или обновите последнюю версию Firebase CLI.

  4. Запишите либо идентификатор вашего проекта Firebase, либо ранее настроенный псевдоним проекта.

Шаг 1. Просмотрите подробную информацию о расширении.

Этот шаг не является обязательным, но настоятельно рекомендуется.

Перед установкой Firebase Extension мы рекомендуем вам просмотреть подробную информацию о расширении, включая:

  • Как работает расширение, какие задачи перед установкой и подробности о расширении
  • Общая идентификационная информация и описание
  • Требуется ли для задач расширения учетная запись для выставления счетов
  • Сервисы Google (API) и роли доступа, необходимые для работы
  • Ресурсы, созданные для расширения (например, функции)
  • Описания пользовательских параметров

Для просмотра подробной информации расширения:

  1. Убедитесь, что вы настроили свою среду и выбрали расширение .

  2. Запустите команду Extension-Info из любого места на вашем компьютере:

    firebase ext:info publisher-id/extension-id

    Требуются аргументы publisher-id и extension-id и могут быть найдены на странице сведений о предоставлении расширения .

Шаг 2 : Установите расширение

Перед установкой просмотрите основные спецификации для расширения (например, API, созданные ресурсы , предоставленный доступ и т. Д.) И его требования к выставлению счетов.

Прежде чем продолжить, убедитесь, что вы настроили среду и выбрали расширение .

Инициализировать облачные функции для Firebase

Если вы начинаете новый проект или если ваш проект еще не использует облачные функции для Firebase, запустите init functions :

cd your-project
firebase init functions

Выберите TypeScript или JavaScript в качестве языка ваших функций.

Если в вашем проекте уже есть инициализированные функции облачных функций, убедитесь, что вы используете версию 5.1.0 или новее пакет firebase-functions :

cd your-project/functions
npm upgrade --save firebase-functions

Если вы используете Eslint, вы также можете исключить сгенерированные SDK из вашей конфигурации ( .eslintrc.js ):

ignorePatterns: [
  "/generated/**/*", // Ignore generated files.
  // ...
],

Генерировать расширение SDK

Из вашего местного каталога Firebase запустите ext:sdk:install команду.

firebase ext:sdk:install publisher-id/extension-id@version

Например, чтобы установить версию 0.1.34 расширения firestore-send-email :

firebase ext:sdk:install firebase/firestore-send-email@0.1.34

publisher-id расширения и extension-id и может быть найден на странице сведений о расширении на extensions.dev . Часть @ version необязательна; Если вы опустите его, инструмент устанавливает последнюю версию.

Есть два варианта, которые вы можете указать:

  • --force : сделайте все следующее без дальнейшего подтверждения:

    • Автогенерируйте SDK, даже если кто -то уже был сгенерирован для того же расширения и версии.
    • Установите автогенерированный пакет SDK в проект узла Cloud Functions.
  • --codebase : имя кодовой базы, чтобы добавить SDK TO. В случае неопределенности команда добавляет SDK в кодовую базу по умолчанию, functions .

Эта команда создает пакет узлов, содержащий SDK, автоматически сгенерированный для расширения, и добавляет его в одну из кодовых баз вашего проекта. В кодовой базе по умолчанию ( functions ) SDK сохраняется в следующем месте:

functions/generated/extensions/publisher-id/extension-id/version

После генерации SDK команда спросит, хотите ли вы также установить SDK в свой проект узла облачных функций. Ответьте да на эту подсказку.

Настройте экземпляры расширения

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

  1. В источнике ваших облачных функций импортируйте конструктор, используя оператор, напечатанную командой ext:sdk:install .

    Машинопись

    Например, если вы сгенерировали SDK для расширения firestore-send-email , оператор import будет выглядеть как следующее:

    import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
    

    Если расширение требует каких -либо секретных значений, таких как пароли, вам также нужна функция defineSecret из облачных функций SDK:

    import { defineSecret } from "firebase-functions/params";
    

    JavaScript

    Например, если вы сгенерировали SDK для расширения firestore-send-email , оператор require будет выглядеть как следующее:

    const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
    

    Если расширение требует каких -либо секретных значений, таких как пароли, вам также нужна функция defineSecret из облачных функций SDK:

    const { defineSecret } = require('firebase-functions/params');
    
  2. Для каждого экземпляра, который вы хотите настроить, вызовите функцию конструктора и экспортируйте результат.

    Дайте каждому экземпляру уникальный идентификатор, содержащий только буквы, цифры и дефисы с более низким регистом.

    Машинопись

    export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    JavaScript

    exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    Обратите внимание, что секретные значения должны быть указаны с использованием функции defineSecret .

  3. Затем, чтобы развернуть настраиваемые вами расширения, запустите:

    firebase deploy --only functions --project=projectId-or-alias

    Применяются все обычные варианты развертывания облачных функций . Например, для развертывания одного экземпляра расширения из конкретной кодовой базы:

    firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias

Шаг 3 : Полная установка после установки

У некоторых расширений требуются или дополнительные шаги для завершения перед использованием их. Найдите эти инструкции на странице сведений о пост-установке вашего расширения на панели Extensions на консоли Firebase (конкретная ссылка на приборную панель отображается в терминале после установки).

Вы также можете найти эти инструкции в файле POSTINSTALL.md , включенного в исходный каталог расширения .

Создать ресурсы Firebase

Если вы настроили расширение для использования ресурсов Firebase (коллекции Cloud Firestore , пути Realtime Database , ковши Cloud Storage ), которые еще не существуют, создайте их перед использованием расширения.

Создать обработчики событий Eventarc

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

Если вы хотите определить обработчиков для любого из событий, испускаемых расширением, вы можете сделать это, используя методы триггера каждого экземпляра:

Машинопись

export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

JavaScript

exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

Вы должны экспортировать обработчик событий вместе с экземпляром расширения.

После определения обработчика событий и каждый раз, когда вы вносите изменения в один, повторно разверните как расширение, так и обработчик.

Установите несколько экземпляров расширения

Вы можете установить одно и то же расширение более одного раза в одном и том же проекте. Каждый установленный экземпляр может иметь свою собственную настраиваемую конфигурацию и собственные ресурсы расширения. Вы идентифицируете и ссылаетесь на каждый установленный экземпляр, используя свой идентификатор экземпляра , который является уникальным в вашем проекте.

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

Следующие шаги

,

Вы можете установить (и управлять ) любым из официальных расширений Firebase , используя либо консоли Firebase , CLI Firebase (интерфейс командной строки), либо используя автогенерированный SDK.

Обязательно просмотрите различия в поддерживаемых действиях для каждого метода установки.


Установка с использованием автогенерированного SDK - это новая опция для установки и управления расширениями. С помощью этой опции вы используете CLI для автоматического генерации SDK узла для определенной версии расширения, которую вы можете импортировать в качестве обычной зависимости в ваших функциях JavaScript или TypeScript Cloud.

Этот автоматический SDK содержит:

  • Интерфейс, представляющий параметры расширения, и объявления типа для большинства непримитивых типов параметров.
  • Функция конструктора, которая инициализирует экземпляр расширения
  • Класс расширения, который содержит триггеры EventARC для всех событий, испускаемых расширением.

После того, как вы сгенерировали расширение SDK, вся конфигурация расширения происходит в коде.

Использование этой опции установки может значительно упростить управление несколькими экземплярами расширения, особенно в проектах, которые содержат облачные функции, определенные вне расширений.


Чтобы установить или управлять расширениями, вам необходимо назначить одну из этих ролей: владелец или редактор или администратор Firebase .

Чтобы установить расширение, ваш проект должен быть в плане Blaze (платите по мере того, как вы идете). Несмотря на то, что за установку продления не взимается плата, вы можете взимать плату за использование услуг Firebase или облачных сервисов, таких как Cloud Secret Manager , если ваше использование превышает бесплатный уровень Сервисов.

Прежде чем начать

  1. Если вы еще этого не сделали, добавьте Firebase в свой проект .

  2. Если вы еще этого не сделали, обновите свой проект до плана Blaze (Pay As You Go).

  3. Установите или обновите в последнюю версию CLI Firebase .

  4. Обратите внимание на свой идентификатор проекта Firebase или ранее настроенный псевдоним проекта.

Шаг 1 : Просмотреть подробную информацию о расширении

Этот шаг необязательно, но настоятельно рекомендуется.

Перед установкой Firebase Extension мы рекомендуем просмотреть подробную информацию о расширении, включая:

  • Как работает расширение, любые предварительные задачи и подробности о расширении
  • Общая идентификационная информация и описание
  • Требуются ли задачи расширения.
  • Google Services (API) и доступа к ролям, необходимым для эксплуатации
  • Ресурсы, созданные для расширения (например, функции)
  • Описания пользовательских параметров

Для просмотра подробной информации расширения:

  1. Убедитесь, что вы настроили свою среду и выбрали расширение .

  2. Запустите команду Extension-Info из любого места на вашем компьютере:

    firebase ext:info publisher-id/extension-id

    Требуются аргументы publisher-id и extension-id и могут быть найдены на странице сведений о предоставлении расширения .

Шаг 2 : Установите расширение

Перед установкой просмотрите основные спецификации для расширения (например, API, созданные ресурсы , предоставленный доступ и т. Д.) И его требования к выставлению счетов.

Прежде чем продолжить, убедитесь, что вы настроили среду и выбрали расширение .

Инициализировать облачные функции для Firebase

Если вы начинаете новый проект или если ваш проект еще не использует облачные функции для Firebase, запустите init functions :

cd your-project
firebase init functions

Выберите TypeScript или JavaScript в качестве языка ваших функций.

Если в вашем проекте уже есть инициализированные функции облачных функций, убедитесь, что вы используете версию 5.1.0 или новее пакет firebase-functions :

cd your-project/functions
npm upgrade --save firebase-functions

Если вы используете Eslint, вы также можете исключить сгенерированные SDK из вашей конфигурации ( .eslintrc.js ):

ignorePatterns: [
  "/generated/**/*", // Ignore generated files.
  // ...
],

Генерировать расширение SDK

Из вашего местного каталога Firebase запустите ext:sdk:install команду.

firebase ext:sdk:install publisher-id/extension-id@version

Например, чтобы установить версию 0.1.34 расширения firestore-send-email :

firebase ext:sdk:install firebase/firestore-send-email@0.1.34

publisher-id расширения и extension-id и может быть найден на странице сведений о расширении на extensions.dev . Часть @ version необязательна; Если вы опустите его, инструмент устанавливает последнюю версию.

Есть два варианта, которые вы можете указать:

  • --force : сделайте все следующее без дальнейшего подтверждения:

    • Автогенерируйте SDK, даже если кто -то уже был сгенерирован для того же расширения и версии.
    • Установите автогенерированный пакет SDK в проект узла Cloud Functions.
  • --codebase : имя кодовой базы, чтобы добавить SDK TO. В случае неопределенности команда добавляет SDK в кодовую базу по умолчанию, functions .

Эта команда создает пакет узлов, содержащий SDK, автоматически сгенерированный для расширения, и добавляет его в одну из кодовых баз вашего проекта. В кодовой базе по умолчанию ( functions ) SDK сохраняется в следующем месте:

functions/generated/extensions/publisher-id/extension-id/version

После генерации SDK команда спросит, хотите ли вы также установить SDK в свой проект узла облачных функций. Ответьте да на эту подсказку.

Настройте экземпляры расширения

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

  1. В источнике ваших облачных функций импортируйте конструктор, используя оператор, напечатанную командой ext:sdk:install .

    Машинопись

    Например, если вы сгенерировали SDK для расширения firestore-send-email , оператор import будет выглядеть как следующее:

    import { firestoreSendEmail } from "@firebase-extensions/firebase-firestore-send-email-sdk";
    

    Если расширение требует каких -либо секретных значений, таких как пароли, вам также нужна функция defineSecret из облачных функций SDK:

    import { defineSecret } from "firebase-functions/params";
    

    JavaScript

    Например, если вы сгенерировали SDK для расширения firestore-send-email , оператор require будет выглядеть как следующее:

    const { firestoreSendEmail } = require("@firebase-extensions/firebase-firestore-send-email-sdk");
    

    Если расширение требует каких -либо секретных значений, таких как пароли, вам также нужна функция defineSecret из облачных функций SDK:

    const { defineSecret } = require('firebase-functions/params');
    
  2. Для каждого экземпляра, который вы хотите настроить, вызовите функцию конструктора и экспортируйте результат.

    Дайте каждому экземпляру уникальный идентификатор, содержащий только буквы, цифры и дефисы с более низким регистом.

    Машинопись

    export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    JavaScript

    exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", {
        SMTP_CONNECTION_URI: "smtps://username@example.com@smtp.example.com:465",
        SMTP_PASSWORD: defineSecret("SMTP_PASSWORD"),
        MAIL_COLLECTION: "mail",
        DEFAULT_FROM: "ExampleCo <username@example.com>",
        TTL_EXPIRE_VALUE: "1",
        TTL_EXPIRE_TYPE: "day",
    });
    

    Обратите внимание, что секретные значения должны быть указаны с использованием функции defineSecret .

  3. Затем, чтобы развернуть настраиваемые вами расширения, запустите:

    firebase deploy --only functions --project=projectId-or-alias

    Применяются все обычные варианты развертывания облачных функций . Например, для развертывания одного экземпляра расширения из конкретной кодовой базы:

    firebase deploy --only functions:codebase:extension-instance-id --project=projectId-or-alias

Шаг 3 : Полная установка после установки

У некоторых расширений требуются или дополнительные шаги для завершения перед использованием их. Найдите эти инструкции на странице сведений о пост-установке вашего расширения на панели Extensions на консоли Firebase (конкретная ссылка на приборную панель отображается в терминале после установки).

Вы также можете найти эти инструкции в файле POSTINSTALL.md , включенного в исходный каталог расширения .

Создать ресурсы Firebase

Если вы настроили расширение для использования ресурсов Firebase (коллекции Cloud Firestore , пути Realtime Database , ковши Cloud Storage ), которые еще не существуют, создайте их перед использованием расширения.

Создать обработчики событий Eventarc

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

Если вы хотите определить обработчиков для любого из событий, испускаемых расширением, вы можете сделать это, используя методы триггера каждого экземпляра:

Машинопись

export const firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

export const emailErrorHandler = firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

JavaScript

exports.firestoreSendEmail_1 = firestoreSendEmail("firestore-send-email-1", { /* ... */ });

exports.emailErrorHandler = exports.firestoreSendEmail_1.onError((event) => {
  // Handle mail errors.
});

Вы должны экспортировать обработчик событий вместе с экземпляром расширения.

После определения обработчика событий и каждый раз, когда вы вносите изменения в один, повторно разверните как расширение, так и обработчик.

Установите несколько экземпляров расширения

Вы можете установить одно и то же расширение более одного раза в одном и том же проекте. Каждый установленный экземпляр может иметь свою собственную настраиваемую конфигурацию и собственные ресурсы расширения. Вы идентифицируете и ссылаетесь на каждый установленный экземпляр, используя свой идентификатор экземпляра , который является уникальным в вашем проекте.

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

Следующие шаги