ฉันจะเปลี่ยนแอพจาก firebase cli ได้อย่างไร


101

ดูเหมือนว่าจะเป็นสิ่งที่ทำได้ง่ายมาก แต่ไม่ว่าจะด้วยเหตุผลใดฉันก็พ่ายแพ้

ฉันพยายามใช้ 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 UI มิฉะนั้นสามารถรันโดยใช้คอนโซลคำสั่ง ตรวจสอบให้แน่ใจว่าคุณอยู่ในfunctionsโฟลเดอร์

npm run-script changeToProd

คุณสามารถตรวจสอบโปรเจ็กต์ปัจจุบันของคุณได้โดยรันคำสั่งต่อไปนี้จากเทอร์มินัลหรือเพิ่มลงในสคริปต์ตามที่เราเพิ่งทำ

firebase use

ยินดีต้อนรับแนวทางของฉันตั้งใจจะแบ่งปันกับคนอื่น ๆ ในทีม :)
cutiko

17

ในไดเร็กทอรีที่คุณเรียกใช้firebase listจะมีไฟล์ชื่อfirebase.json. หากคุณเปิดในโปรแกรมแก้ไขข้อความคุณจะเห็นชื่อแอปในนั้น คุณสามารถเปลี่ยนหรือลบได้ที่นั่นfirebase.jsonเพื่อเปลี่ยนแอป

หรือช่วยตัวเองไม่ให้ยุ่งยากในการแก้ไขไฟล์ข้อความและทำตามที่ Jason บอก: ใช้firebase init.


1
ตอนนี้มีการเปลี่ยนแปลงหรือไม่? เพราะหาชื่อแอพใน firebase.json ไม่เจอ แต่หาได้ใน. firebaserc .... ชื่นชมคำชี้แจง ...
Abhishek

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 ", MeasureId:" xxxxxxxx "}; // Initialize Firebase`
Sultanmyrza Kasymbekov

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สลับระหว่างโครงการต่างๆ

โปรดทราบว่าการสลับโปรเจ็กต์จะไม่สร้างความแตกต่างของคอมไพล์ แต่จำได้ง่ายๆในเครื่องของคุณ หากต้องการดูว่ากำลังใช้โครงการใดอยู่ให้เรียกใช้firebase useเพื่อดูว่าโครงการกำลังถูกใช้วิ่ง

หากคุณต้องการเปลี่ยนรหัสโปรเจ็กต์โดยไม่ต้องทำการเปลี่ยนแปลงกับเจ้าของโปรเจ็กต์.firebasercให้ทำfirebase use my-project-idในเครื่องตามที่ระบุไว้ในคำตอบที่ยอมรับ ในทางตรงกันข้ามถ้าคุณเป็นเจ้าของโครงการและต้องการให้คนอื่นใช้รหัสโครงการของพวกเขาเองคุณควรเพิ่มเข้าไป.firebaserc.gitignore



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)

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.