Làm cách nào để chuyển đổi ứng dụng từ cli firebase?


101

Đây có vẻ như là một việc khá dễ dàng để làm, nhưng vì bất cứ lý do gì, tôi đang bị đánh bại.

Tôi đang cố gắng sử dụng CLI của firebase-tools để tương tác với cơ sở dữ liệu của mình. Tôi có thể đăng nhập mà không gặp bất kỳ sự cố nào và khi nhập firebase list, tôi sẽ nhận được danh sách tất cả các ứng dụng hiện tại của mình. Nó cũng cho tôi biết tôi hiện đang kết nối với ứng dụng nào.

Vấn đề của tôi là, tôi muốn kết nối với một trong các ứng dụng khác. Tôi đang chạy các truy vấn trên ứng dụng dàn dựng của mình và tôi cần chạy chúng trên ứng dụng sản xuất của mình. Tôi có thể thấy ứng dụng sản xuất trong danh sách, nhưng tôi không tìm thấy bất kỳ cách nào để chuyển sang ứng dụng đó.

Suy nghĩ?

Câu trả lời:



27

Tôi thích sử dụng kịch bản hơn. Hãy xem xét cấu trúc dự án như thế này:

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

Đi tới .firebasercvà làm theo ví dụ tiếp theo

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

Sau đó, đi tới package.jsonvà thêm các tập lệnh sau ( changeToProdchangeToDev).

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

Nếu IDE của bạn hỗ trợ tập lệnh npm, bạn có thể chạy chúng bằng giao diện người dùng IDE, nếu không nó có thể chạy bằng bảng điều khiển lệnh. Đảm bảo rằng bạn đang ở bên trong functionsthư mục.

npm run-script changeToProd

Bạn có thể xác minh dự án hiện tại của mình bằng cách chạy lệnh sau từ thiết bị đầu cuối hoặc thêm vào các tập lệnh như chúng tôi vừa làm

firebase use

Chào mừng bạn, cách tiếp cận của tôi nhằm mục đích có thể chia sẻ được với những người còn lại trong nhóm :)
cutiko

17

Trong thư mục mà bạn chạy firebase list, sẽ có một tệp được gọi firebase.json. Nếu bạn mở nó trong trình soạn thảo văn bản, bạn sẽ thấy tên ứng dụng trong đó. Bạn có thể thay đổi nó ở đó hoặc xóa firebase.jsonđể thay đổi ứng dụng.

Hoặc bạn không cần phải chỉnh sửa một tập tin văn bản và làm như Jason nói: sử dụng firebase init.


1
Có thay đổi bây giờ không? Bởi vì tôi không thể tìm thấy tên ứng dụng trong firebase.json nhưng có thể tìm thấy nó trong .firebaserc .... Coi trọng việc làm rõ ...
Abhishek

1
Tên dự án thực sự là trong .firebasercbây giờ.
Frank van Puffelen

2
Có thể sai nhưng điều này dường như không chuyển đổi cơ sở dữ liệu. Triển khai sẽ triển khai đến dự án "hiện tại" nhưng nó dường như vẫn kéo dữ liệu từ cơ sở dữ liệu gốc. Khá nguy hiểm nếu bạn định sử dụng điều này để tách quá trình sản xuất khỏi môi trường dàn dựng. Hy vọng không ai mất dữ liệu sản phẩm của họ. :(
Enric Ribas,

1
Tôi đang gặp sự cố tương tự mà @Enric đã mô tả về việc truy cập cơ sở dữ liệu mặc định khi đang ở trong một dự án khác. Có cách nào để phát hiện dự án nào đang được sử dụng ở phía máy khách để tôi có thể thay đổi cấu hình để khởi tạo ứng dụng một cách thích hợp không?
Zectbumo

đảm bảo bạn thay đổi firebaseConfig `// Cấu hình Firebase của ứng dụng web của bạn var firebaseConfig = {apiKey:" api-key ", authDomain:" new-project.firebaseapp.com ", databaseURL:" https: /new-project.firebaseio.com ", projectId:" new-project-id ", storageBucket:" xxxxxxxxxxx.appspot.com ", messageSenderId:" xxxxxx ", appId:" xxxxxxxxxx ", MeasureId:" xxxxxxxx "}; // Khởi tạo Firebase`
Sultanmyrza Kasymbekov

11

Nếu bạn đang sử dụng Node.js trên windows, câu trả lời của bạn sẽ là

firebase use <project_id>

nhưng không có <> chẳng hạn

firebase use chat-app-2a150

Bạn có thể sử dụng mã sau để xem tất cả các dự án của mình để chọn đúng ID dự án để sử dụng

firebase projects:list

5

Câu trả lời vào năm 2020:

Cách được khuyến nghị chính thức là sử dụng "bí danh":

Trong của bạn .firebaserc, hãy đặt các ID dự án khác nhau:

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

Sau đó, bạn có thể thực hiện firebase use testinghoặc firebase use productionchuyển đổi giữa các dự án.

Lưu ý rằng việc chuyển đổi các dự án sẽ không tạo ra bất kỳ khác biệt git nào, nó chỉ đơn giản được ghi nhớ trong máy cục bộ của bạn. Để xem dự án nào hiện đang được sử dụng, hãy chạy firebase use.

Nếu bạn muốn thay đổi ID dự án mà không cam kết thay đổi chủ sở hữu dự án .firebaserc, hãy thực hiện firebase use my-project-idcục bộ như đã đề cập trong câu trả lời được chấp nhận. Mặt khác, nếu bạn là chủ sở hữu dự án và muốn người khác sử dụng ID dự án của riêng họ, bạn nên thêm .firebasercvào .gitignore.


3

bạn chỉ có thể sử dụng một công tắc dòng lệnh

--project=my-firebase-project

1

Câu trả lời bổ sung của @ cutiko

Trong 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 để có được môi trường cấu hình tùy chỉnh

Trong .firebaserc

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

0

để thay đổi dự án đích của ứng dụng firebase, bạn có thể nhập "firebase use myProjectName". tôi cũng đã sử dụng "danh sách firebase" của các câu trả lời ở trên để kiểm tra xem tôi có dự án nào (làm việc cho tôi trong firebase cli 7.4 với ứng dụng angle 7)

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.