Firebase: развертывание одного и того же приложения в нескольких проектах Firebase - PullRequest
1 голос
/ 16 июня 2020

Я пытаюсь развернуть свой код в двух разных Firebase-проектах, один для разработки и один для производства.

Проект my-app-dev уже включен и работает, поэтому я добавил my-app (для производства) с помощью firebase use --add и выбрал my-app.

Вот как теперь выглядит моя конфигурация Firebase:

.firebaser c

{
  "targets": {
    "my-app-dev": {
      "hosting": {
        "app": [
          "my-app-dev"
        ]
      }
    }
  },
  "projects": {
    "default": "my-app-dev",
    "prod": "my-app"
  }
}

firebase. json

{
  "hosting": [
    {
      "target": "app",
      "public": "dist/app",
      "ignore": [
        "firebase.json",
        "**/.*",
        "**/node_modules/**"
      ],
      "rewrites": [
        {
          "source": "**",
          "destination": "/index.html"
        }
      ]
    }
  ],
  "functions": {
    "predeploy": [
      "npm --prefix \"$RESOURCE_DIR\" run lint",
      "npm --prefix \"$RESOURCE_DIR\" run build"
    ]
  }
}

Пока я развертываю свой проект по умолчанию, все работает нормально, но когда я пытаюсь firebase deploy -P prod это показывает следующую ошибку:

Deploy target app not configured for project my-app. Configure with:

firebase target:apply hosting app <resources...>

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

1 Ответ

0 голосов
/ 16 июня 2020

Согласно этому комментарию в GitHub, это невозможно сделать без «хакерского» метода, такого как замена firebase. json программно во время развертывания.

Прямо сейчас Firebase Интерфейс командной строки предназначен для обработки проектов как анонимных сред, которые функционально идентичны. Это важно, чтобы иметь возможность развертывать одни и те же ресурсы в нескольких проектах без изменения кода (в том числе в firebase. json).

Для достижения желаемого вам необходимо настроить dev и prod, каждая со своей собственной базой firebase. json и каждая с целью только для указанного c проекта. Развертывание разных активов в разные проекты сейчас не поддерживается и вряд ли будет поддерживаться в будущем (однако мы можем разрешить настройку местоположения firebase. json с помощью флага в какой-то момент).

...