Как переключить приложения с помощью firebase cli?

101

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

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

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

Мысли?

wvm2008
источник

Ответы:

27

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

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
кутико
источник
Добро пожаловать, я
хочу
17

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

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

Франк ван Пуффелен
источник
1
Есть ли изменение сейчас? Потому что я не могу найти имя приложения в firebase.json, но могу найти его в .firebaserc .... Примите во внимание разъяснения ...
Абхишек
1
Название проекта действительно присутствует .firebaserc.
Франк ван Пуффелен
2
Возможно, это не так, но это не переключает базу данных. Развертывание будет развернуто в «текущем» проекте, но, похоже, все еще будет извлекать данные из исходной базы данных. Чертовски опасно, если вы собираетесь использовать это для отделения производственной среды от промежуточной. Надеюсь, никто не потеряет свои данные о продуктах. :(
Энрик Рибас
1
У меня та же проблема, которую описал @Enric, о доступе к базе данных по умолчанию, находясь в другом проекте. Есть ли способ определить, какой проект используется на стороне клиента, чтобы я мог изменить конфигурацию для соответствующей инициализации приложения?
Zectbumo
убедитесь, что вы изменили firebaseConfig `// конфигурацию Firebase вашего веб-приложения var firebaseConfig = {apiKey:" api-key ", authDomain:" new-project.firebaseapp.com ", databaseURL:" https: /new-project.firebaseio.com ", projectId:" new-project-id ", storageBucket:" xxxxxxxxxxx.appspot.com ", messagingSenderId:" xxxxxx ", appId:" xxxxxxxxxx ", measureId:" xxxxxxxx "}; // Инициализировать Firebase`
Султанмырза Касымбеков
11

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

firebase use <project_id>

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

firebase use chat-app-2a150

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

firebase projects:list
Мешах Коех
источник
6

Ответ в 2020 году:

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

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

{
  "projects": {
    "production": "my-project-id",
    "testing": "my-project-id--testing"
  }
}
// you can also interactively add them with `firebase use --add`

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

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

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

ZYinMD
источник
3

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

--project=my-firebase-project
Рон Чан
источник
1

Дополнение @ cutiko ответ

В 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}"
  }
}
Giang
источник
0

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

Yehonatan Yehezkel
источник