Это похоже на то, что должно быть довольно легко сделать, но по какой-то причине я проиграл.

Я пытаюсь использовать интерфейс командной строки firebase-tools для взаимодействия с моей базой данных. Я могу войти в систему без каких-либо проблем, и когда я набираю firebase list, я получаю список всех моих текущих приложений. Он также сообщает мне, к какому приложению я сейчас подключен.

Моя проблема в том, что я хочу подключиться к одному из других приложений. Я выполняю запросы в своем промежуточном приложении, и мне нужно запустить их в своем производственном приложении. Я вижу производственное приложение в списке, но не нахожу способа переключиться на это приложение.

Мысли?

wvm2008

Ответов: 9

Ответы (9)

Здесь можно найти полезную информацию Ссылка на интерфейс командной строки Firebase.

У меня работает следующий код.

firebase use 

, чтобы изменить целевой проект приложения firebase, введите «firebase use myProjectName». Я также использовал ответ "firebase list", чтобы проверить, какой у меня проект. (работа для меня в firebase cli 7.4 с приложением angular 7)

В каталоге, в котором вы запускаете firebase list, будет файл с именем firebase.json. Если вы откроете его в текстовом редакторе, вы увидите там название приложения. Вы можете изменить его там или удалить firebase.json, чтобы изменить приложение.

Или избавьтесь от хлопот редактирования текстового файла и сделайте так, как говорит Джейсон: используйте firebase init.

Если вы используете Node.js в Windows, ваш ответ должен быть

firebase use 

, но без <>, например

firebase use chat-app-2a150

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

firebase projects:list

Я предпочитаю скрипты. Рассмотрим такую ​​структуру проекта:

your-project
├── .firebaserc
└── functions
   ├── package.json
   └── index.js

Перейдите к .firebaserc и следуйте следующему примеру

{
  "projects": {
    "default": "project-name",
    "prod": "other-name"
  }
}

Затем перейдите в package.json и добавьте следующие скрипты (changeToProdи changeToDev).

{
  ...
  "scripts": {
    ...
    "changeToProd": "firebase use prod",
    "changeToDev": "firebase use default"
  },
  "dependencies": {
    ...
  },
  ...
}

Если ваша IDE поддерживает сценарии npm, вы можете запускать их с помощью пользовательского интерфейса IDE, в противном случае его можно запускать с помощью командной консоли. Убедитесь, что вы находитесь в папке functions.

npm run-script changeToProd

Вы можете проверить свой текущий проект, выполнив следующую команду из терминала или добавив в скрипты, как мы только что сделали

firebase use

Я могу ошибаться, но похоже, что исходный вопрос касался изменения приложений в рамках данного проекта, а не просто изменения проектов.

Этот ответ касается изменения приложений и site_ID в проекте.

В моем случае у меня есть проект (CoolProject) с двумя веб-приложениями:

  • форма оценки: форма
  • основной сайт: сайт

Оба приложения находятся в отдельных репозиториях как локально, так и в GitHub.

Каждое приложение имеет свой собственный идентификатор site_ID:

  • форма: coolproject-form [.web.app]
  • сайт: coolproject-website [.web.app]

Сначала я установил приложение form и без проблем развернул его в coolproject-form. Но когда я создал приложение web (и связанное с ним coolproject-website site_ID) и попытался развернуть его, используя firebase deploy --only hosting или firebase deploy --only hosting: website он неправильно развернул его в coolproject-form, перезаписав форму app.

Вот как я в итоге решил проблему (на основе этой документации Firebase):

  1. Убедитесь, что оба приложения и соответствующие site_ID настроены правильно:
firebase apps:list
firebase hosting:sites:list
  1. Настройте веб-сайт цель развертывания для хостинга (через .firebaserc)
firebase target:apply hosting website coolproject-website
  1. Обновление firebase.json (для приложения сайт):
...
"hosting": [{
    "target": "website",
    "public": "build",
    "ignore": [
      "firebase.json",
      "**/.*",
      "**/node_modules/**"
    ],
    "rewrites": [
      {
        "source": "**",
        "destination": "/index.html"
      }
    ]
  }],
...
  1. Развернуть
firebase deploy --only hosting

Теперь приложение website правильно развернуто на coolproject-website.web.app.

Дополнение @ ответ кутико

В package.json

"scripts": {
...
"prod": "echo \"Switch to Production environment\" && firebase use prod && npm run runtimeconfig",
"dev": "echo \"Switch to Development environment\" && firebase use default && npm run runtimeconfig"
...

npm run runtimeconfig для получения настраиваемой среды конфигурации

В .firebaserc

{
  "projects": {
    "default":"{project-dev-id}",
    "prod": "{project-prod-id}"
  }
}

вы можете просто использовать переключатель командной строки

--project=my-firebase-project

2020:

Официально рекомендуемый способ - использовать «псевдоним»:

В вашем .firebasercустановите разные идентификаторы проекта, например:

{
  "projects": {
    "production": "my-project-id",
    "тестирование": "идентификатор-проекта-тестирования"
  }
}
// вы также можете добавить их интерактивно с помощью `firebase use --add`

Затем вы можете выполнить тестирование использования firebase или производство использования firebase для переключения между проектами.

Обратите внимание, что переключение проектов не создает никакого git diff, это просто сохраняется на вашем локальном компьютере. Чтобы увидеть, какой проект в настоящее время используется, выполните firebase, используйте.

Если вы хотите использовать свой собственный идентификатор без внесения изменений в .firebasercвладельца проекта, сделайте firebase, используйте my-own-id локально, как указано в принятом ответе. С другой стороны, если вы являетесь владельцем проекта и хотите, чтобы люди использовали свои собственные идентификаторы проекта, вам следует добавить .firebaserc в .gitignore.

.

2022 WebDevInsider