#flutter-web #firebase-hosting
#flutter-web #firebase-хостинг
Вопрос:
Внутри проекта Firebase под названием originalawesome
I настраиваю второй сайт на хостинге Firebase, затем у меня есть:
originalawesome.web.app
secondawesome.web.app
У первого ( originalawesome
) есть приложение JS в рабочей среде.
Во втором ( secondawesome
) Я хочу установить веб-приложение Flutter, и для этого я выполняю следующие шаги:
firebase init
(I select Hosting)
(I select to use an existing project)
(I select the project - originalawesome) //secondawesome is not an option
Там он просит меня выбрать каталог для публикации, поэтому я полагаю, что веб-приложение Flutter будет публиковаться на моем сайте в рабочей среде, что неверно.
Читая документацию в разделе Совместное использование ресурсов проекта на нескольких сайтах, когда развертывания должны выполняться на разных сайтах, Deploy Targets
запрашивается дифференцирование с помощью следующей команды:
firebase target: apply hosting secondawesome secondawesome
Однако, когда я запускаю его, я получаю сообщение об ошибке, потому что у меня еще нет файла firebase json.
Ошибка: не в каталоге приложения Firebase (не удалось найти firebase.json)
Вопрос в том, как я могу развернуть веб-приложение Flutter на втором хостинге Firebase, не удаляя предыдущее?
Ответ №1:
После изрядного количества проб и ошибок решение выглядит следующим образом:
В корневом каталоге приложения (это очень важно):
flutter build web --web-renderer html //In my case, I will
//generate html web rendered. It will create a firebase.json
//file and others
firebase target:apply hosting originalawesome originalawesome
firebase target: apply hosting secondawesome secondawesome
//It will create records in .firebaserc file
В файле firebase.json необходимо включить:
{
"hosting": {
"target": "secondawesome", //deploy target
//(previously created on Firebase Hosting Console)
"public": "build/web", //build/web is the directory of the Flutter Web App build
///rest of file
Теперь да, запускайте…
firebase init
? Что вы хотите использовать в качестве общедоступного каталога? сборка / веб
? Настроить как одностраничное приложение (переписать все URL-адреса на /index.html )? ДА
? Настроить автоматическую сборку и развертывание с помощью GitHub? НЕТ
? Файл build/web/index.html уже существует. Перезаписать? НЕТ
Чтобы завершить и загрузить файлы на хостинг Firebase…
firebase deploy --only hosting:secondawesome
Я надеюсь, что это поможет кому-то еще!!