Облачная функция для запуска в нескольких проектах Firebase - PullRequest
0 голосов
/ 02 мая 2020

У меня есть два проекта Firebase (по умолчанию и в стадии подготовки). Оба инициализируются под одними и теми же псевдонимами в CLI.

Я могу все успешно развернуть в «default» и все, кроме функций, успешно «подготовить». Я получаю сообщение об ошибке 403. При развертывании в стадии подготовки.

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

// Import from Firebase
import * as functions from 'firebase-functions'
import * as admin from 'firebase-admin'

// Admin Init that supports localhost testing
const serviceAccount = require('../keys/default-key.json')
admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
})

Если я вручную изменю ссылку на 'staging-key. json', который использует ключ учетной записи службы. json из моего промежуточного проекта, то развертывание в staging также будет работать нормально.

Мой вопрос: могу ли я автоматически изменить указанный ключ. Файл json в зависимости от проекта, который я тоже развертываю?

ИЛИ - есть ли лучший способ справиться с этой ситуацией?

В идеале я просто хочу использовать 'firebase use' в CLI для переключения между проектами и развертыванием без изменения кода.

1 Ответ

0 голосов
/ 02 мая 2020

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

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

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...