#firebase #firebase-hosting #google-cloud-build
#firebase #firebase-хостинг #google-cloud-build
Вопрос:
У меня есть конвейер CI / DC с триггерами сборки Google cloud, которые развертывают мой код на разных сайтах в зависимости от того, в какую ветку я нажимаю. Сайт разработки — это живой тест — последняя проверка перед тем, как я объединюсь с master, которая запускает развертывание master на производственном сайте.
В настоящее время оба сайта используют одну и ту же firebase Firestore db, и любой документ, измененный на сайте разработки, также будет изменен на производственном сайте.
Чего я хочу избежать, так это создания другого проекта firebase для отправки кода разработки в другую базу данных, потому что это означает, что мне нужен отдельный набор учетных данных, и я буду копировать одни и те же функции в новый проект каждый раз, когда я их меняю. Это не поддерживается и требует много работы.
Я хотел бы, чтобы сайт разработки имел доступ только к части базы данных firestore, а производственный сайт имел доступ к другой части.
Как люди это делают? Возможно ли это вообще? Есть ли лучший способ? Одна из альтернатив, о которой я могу подумать, — это использование аутентификации и создание отдельных учетных записей для тестирования с разными разрешениями доступа, но это кажется обходным, а не идеальным решением.
Ответ №1:
То, что вы пытаетесь сделать, звучит намного сложнее, чем использование нескольких проектов, что является документированным и предпочтительным решением. Объединение всего в одном проекте является огромным препятствием для Firebase и Google Cloud, и в долгосрочной перспективе это вызовет у вас больше проблем, в дополнение к увеличению риска катастрофического сбоя, если вам удастся что-то неправильно настроить в этом одном проекте.
Иметь несколько подобных проектов вполне удобно, если вы применяете некоторые сценарии для автоматизации работы. Это очень распространенное явление, и я настоятельно рекомендую подумать о том, как это будет работать для вас.
Конвейер CI / CD определенно может проверять ваши обновления из системы управления версиями и развертывать их в любых других средах проекта, которые вы настроили. Очень часто приходится управлять разными учетными данными и конфигурациями для использования в CI / CD.