Як переключити програми з Firebase cli?


100

Це здається чимось, що повинно бути досить легко зробити, але з якоїсь причини я зазнаю поразки.

Я намагаюся використовувати CLI-інструменти Firebase для взаємодії з моєю базою даних. Я можу увійти без будь-яких проблем, і коли я вводжу firebase list, я отримую список усіх своїх поточних програм. Це також повідомляє мені, до якого додатку я зараз підключений.

Моя проблема полягає в тому, що я хочу підключитися до однієї з інших програм. Я запускаю запити в моїй програмі-постановці, і мені потрібно запускати їх у моїй робочій програмі. Я бачу у списку робочу програму, але я не знаходжу жодного способу перейти на неї.

Думки?

Відповіді:



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зараз.
Frank van Puffelen

2
Можливо, помиляється, але, схоже, це не змінює базу даних. Розгортання буде розгорнуто до "поточного" проекту, але, схоже, все ще витягує дані з вихідної бази даних. Надзвичайно небезпечно, якщо ви збираєтеся використовувати це, щоб відокремити виробництво від постановочного середовища. Сподіваюся, ніхто не втрачає свої дані про товари. :(
Enric Ribas

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 ", dimensionId:" xxxxxxxx "}; // Ініціалізація
Firebase`

11

Якщо ви використовуєте Node.js у Windows, ваша відповідь повинна бути такою

firebase use <project_id>

але без <> наприклад

firebase use chat-app-2a150

Ви можете використовувати наступний код для перегляду всіх своїх проектів, щоб вибрати правильний ідентифікатор проекту для використання

firebase projects:list

5

Відповідь у 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.


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}"
  }
}

0

щоб змінити проект призначення програми firebase, ви можете ввести "firebase use myProjectName". я також використовував вищезгадані відповіді "список firebase", щоб перевірити, який у мене проект (працює для мене у firebase cli 7.4 із додатком angular 7)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.