Bagaimana cara mengganti aplikasi dari firebase cli?

103

Ini sepertinya sesuatu yang seharusnya cukup mudah dilakukan, tetapi untuk alasan apa pun, saya dikalahkan.

Saya mencoba menggunakan firebase-tools CLI untuk berinteraksi dengan database saya. Saya dapat masuk tanpa masalah, dan saat saya mengetik firebase list, saya mendapatkan daftar semua aplikasi saya saat ini. Ini juga memberi tahu saya aplikasi mana yang saat ini saya sambungkan.

Masalah saya adalah, saya ingin terhubung ke salah satu aplikasi lain. Saya menjalankan kueri di aplikasi pementasan saya, dan saya perlu menjalankannya di aplikasi produksi saya. Saya dapat melihat aplikasi produksi dalam daftar, tetapi saya tidak menemukan cara untuk beralih ke aplikasi itu.

Pikiran?

wvm2008.dll
sumber

Jawaban:

28

Saya lebih suka menggunakan skrip. Pertimbangkan struktur proyek seperti ini:

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

Pergi ke .firebasercdan ikuti contoh selanjutnya

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

Lalu pergi ke package.jsondan tambahkan skrip berikut ( changeToProd, dan changeToDev).

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

Jika IDE Anda mendukung skrip npm, Anda dapat menjalankannya menggunakan UI IDE, jika tidak, skrip tersebut dapat dijalankan menggunakan konsol perintah. Pastikan Anda berada di dalam functionsfolder tersebut.

npm run-script changeToProd

Anda dapat memverifikasi proyek Anda saat ini dengan menjalankan perintah berikut dari terminal atau ditambahkan ke skrip seperti yang baru saja kita lakukan

firebase use
cutiko
sumber
Selamat datang, pendekatan saya dimaksudkan agar dapat dibagikan dengan anggota tim lainnya :)
cutiko
17

Di direktori tempat Anda menjalankan firebase list, akan ada file bernama firebase.json. Jika Anda membukanya di editor teks, Anda akan melihat nama aplikasi di sana. Anda dapat mengubahnya di sana atau menghapus firebase.jsonuntuk mengubah aplikasi.

Atau selamatkan diri Anda dari kerumitan mengedit file teks dan lakukan seperti yang dikatakan Jason: gunakan firebase init.

Frank van Puffelen
sumber
1
Apakah ada perubahan sekarang? Karena saya tidak dapat menemukan nama aplikasi di firebase.json tetapi dapat menemukannya di .firebaserc .... Menghargai klarifikasi ...
Abhishek
1
Nama proyek memang ada .firebasercsekarang.
Frank van Puffelen
2
Mungkin salah tapi ini sepertinya tidak mengganti database. Penerapan akan diterapkan ke proyek "saat ini" tetapi tampaknya masih menarik data dari database asli. Sangat berbahaya jika Anda akan menggunakan ini untuk memisahkan produksi dari lingkungan pementasan. Semoga tidak ada yang kehilangan data produk mereka. :(
Enric Ribas
1
Saya mengalami masalah yang sama dengan yang dijelaskan @Enric tentang mengakses database default saat berada di proyek yang berbeda. Adakah cara untuk mendeteksi proyek apa yang sedang digunakan di sisi klien sehingga saya dapat mengubah konfigurasi untuk menginisialisasi dengan tepat?
Zectbumo
pastikan Anda mengubah firebaseConfig `// Konfigurasi Firebase aplikasi web Anda 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 "}; // Inisialisasi Firebase`
Sultanmyrza Kasymbekov
14

Jika Anda menggunakan Node.js di windows, jawabannya adalah

firebase use <project_id>

tapi tanpa <> misalnya

firebase use chat-app-2a150

Anda dapat menggunakan kode berikut untuk melihat semua proyek Anda guna memilih ID proyek yang benar untuk digunakan

firebase projects:list
Meshach Koech
sumber
10

Jawaban pada tahun 2020:

Cara yang direkomendasikan secara resmi adalah dengan menggunakan "alias":

Di Anda .firebaserc, setel ID proyek yang berbeda:

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

Kemudian Anda dapat melakukan firebase use testingatau firebase use productionberalih antar proyek.

Perhatikan bahwa berpindah proyek tidak akan membuat git diff, itu hanya diingat di mesin lokal Anda. Untuk melihat proyek mana yang sedang digunakan, lakukan firebase use.

Jika Anda ingin mengubah ID proyek tanpa melakukan perubahan pada pemilik proyek .firebaserc, lakukan firebase use my-project-idsecara lokal seperti yang disebutkan dalam jawaban yang diterima. Di sisi lain, jika Anda adalah pemilik proyek dan ingin orang lain menggunakan ID proyek mereka sendiri, Anda harus menambahkan .firebasercke dalam .gitignore.

ZYinMD
sumber
3

Anda bisa menggunakan saklar baris perintah

--project=my-firebase-project
Ron Chan
sumber
1

Tambahan jawaban @ cutiko

Di 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 untuk mendapatkan lingkungan konfigurasi khusus

Di .firebaserc

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

untuk mengubah project tujuan aplikasi firebase, Anda dapat mengetik "firebase use myProjectName". saya juga menggunakan jawaban di atas "daftar firebase" untuk memeriksa proyek apa yang saya miliki (bekerja untuk saya di firebase cli 7.4 dengan aplikasi angular 7)

yehonatan yehezkel
sumber