Как развернуть веб-приложение Flutter на втором хостинге Firebase?

#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
 

Я надеюсь, что это поможет кому-то еще!!