Firebase CLIからアプリを切り替えるにはどうすればよいですか?


97

これはかなり簡単なことのように思えますが、何らかの理由で、私は敗北しています。

firebase-tools CLIを使用してデータベースを操作しようとしています。問題なくログインでき、と入力するとfirebase list、現在のすべてのアプリのリストが表示されます。また、現在接続しているアプリもわかります。

私の問題は、他のアプリの1つに接続したいことです。ステージングアプリでクエリを実行していますが、本番アプリで実行する必要があります。リストに製品版アプリが表示されていますが、そのアプリに切り替える方法が見つかりません。

考え?

回答:



26

私はむしろスクリプトを使用します。次のようなプロジェクト構造について考えてみましょう。

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 UIを使用して実行できます。それ以外の場合は、コマンドコンソールを使用して実行できます。functionsフォルダ内にいることを確認してください。

npm run-script changeToProd

現在のプロジェクトを確認するには、ターミナルから次のコマンドを実行するか、先ほどと同じようにスクリプトに追加します。

firebase use

ようこそ、私のアプローチはチームの他のメンバーと共有できるように意図されています:)
cutiko

16

を実行するディレクトリに、firebase listというファイルがありますfirebase.json。これをテキストエディターで開くと、アプリ名が表示されます。そこで変更するか、削除firebase.jsonしてアプリを変更できます。

または、テキストファイルを編集する手間を省いて、Jasonの言うとおりに使用しますfirebase init


1
今、変化はありますか?...私はfirebase.jsonにアプリの名前を見つけることができませんが、.firebasercでそれを見つけることができますので....明確に感謝
アビシェーク

1
プロジェクト名は確かに.firebaserc今です。
フランクファンPuffelen 2017年

2
間違っている可能性がありますが、これはデータベースを切り替えていないようです。デプロイすると「現在の」プロジェクトにデプロイされますが、それでも元のデータベースからデータをプルしているようです。これを使用して本番環境とステージング環境を分離しようとすると、かなり危険です。製品データを失う人がいないことを願っています。:(
Enric Ribas

1
@Enricが別のプロジェクトでのデフォルトのデータベースへのアクセスについて説明したのと同じ問題があります。設定を変更してアプリを適切に初期化できるように、クライアント側で使用されているプロジェクトを検出する方法はありますか?
Zectbumo

必ずfirebaseConfigを変更してください `// Webアプリの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 "、measurementId:" xxxxxxxx "}; // Firebaseの初期化
`

8

WindowsでNode.jsを使用している場合、あなたの答えは

firebase use <project_id>

<>なしの例

firebase use chat-app-2a150

次のコードを使用してすべてのプロジェクトを表示し、使用する正しいプロジェクトIDを選択できます

firebase projects:list

3

あなたはコマンドラインスイッチを使うことができます

--project=my-firebase-project

2

2020年の回答:

公式に推奨される方法は、「エイリアス」を使用することです。

.firebaserc、さまざまなプロジェクトIDを設定します。

{
  "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ます。

プロジェクトオーナーのへの変更をコミットせずにプロジェクトIDを変更する場合は、承認された回答に記載されているようにローカル.firebasercで行いfirebase use my-project-idます。一方、プロジェクトオーナーが他のユーザーに独自のプロジェクトIDを使用する場合は、にを追加する必要.firebasercがあり.gitignoreます。


0

firebaseアプリの宛先プロジェクトを変更するには、「firebase use myProjectName」と入力します。私はまた、上記の回答「firebaseリスト」を使用して、自分のプロジェクトを確認しました(Firebase cli 7.4でAngular 7アプリを使用して作業します)


0

追加@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}"
  }
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.