Wie wechsle ich Apps von der Firebase-CLI?

94

Dies scheint etwas zu sein, das ziemlich einfach zu tun sein sollte, aber aus irgendeinem Grund werde ich besiegt.

Ich versuche, die Firebase-Tools-CLI zu verwenden, um mit meiner Datenbank zu interagieren. Ich kann mich problemlos anmelden und beim Tippen firebase listerhalte ich eine Liste aller meiner aktuellen Apps. Außerdem wird mir mitgeteilt, mit welcher App ich gerade verbunden bin.

Mein Problem ist, ich möchte eine Verbindung zu einer der anderen Apps herstellen. Ich führe Abfragen in meiner Staging-App aus und muss sie in meiner Produktions-App ausführen. Ich kann die Produktions-App in der Liste sehen, finde aber keine Möglichkeit, zu dieser App zu wechseln.

Gedanken?

wvm2008
quelle

Antworten:

25

Ich benutze lieber Skripte. Stellen Sie sich eine Projektstruktur wie diese vor:

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

Gehen Sie zum .firebasercnächsten Beispiel und folgen Sie ihm

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

Gehen Sie dann zu package.jsonund fügen Sie die folgenden Skripte ( changeToProd, und changeToDev) hinzu.

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

Wenn Ihre IDE npm-Skripte unterstützt, können Sie sie über die IDE-Benutzeroberfläche ausführen, andernfalls können Sie sie über die Befehlskonsole ausführen. Stellen Sie sicher, dass Sie sich im functionsOrdner befinden.

npm run-script changeToProd

Sie können Ihr aktuelles Projekt überprüfen, indem Sie den folgenden Befehl vom Terminal aus ausführen oder wie gerade zu den Skripten hinzufügen

firebase use
Cutiko
quelle
Willkommen, mein Ansatz soll mit dem Rest des Teams geteilt werden :)
Cutiko
16

In dem Verzeichnis, in dem Sie ausgeführt werden firebase list, befindet sich eine Datei mit dem Namen firebase.json. Wenn Sie das in einem Texteditor öffnen, sehen Sie dort den Namen der App. Sie können es dort ändern oder löschen firebase.json, um die App zu ändern.

Oder ersparen Sie sich den Aufwand beim Bearbeiten einer Textdatei und tun Sie, was Jason sagt: Verwenden firebase init.

Frank van Puffelen
quelle
1
Gibt es jetzt eine Änderung? Weil ich den App-Namen nicht in firebase.json finden kann, sondern in .firebaserc .... Schätzen Sie die Klarstellung ...
Abhishek
1
Der Projektname ist in der Tat .firebasercjetzt.
Frank van Puffelen
2
Könnte falsch sein, aber dies scheint die Datenbank nicht zu wechseln. Die Bereitstellung wird für das "aktuelle" Projekt bereitgestellt, es scheint jedoch weiterhin Daten aus der ursprünglichen Datenbank abzurufen. Ziemlich verdammt gefährlich, wenn Sie damit die Produktion von den Staging-Umgebungen trennen. Hoffe, niemand verliert seine Produktdaten. :(
Enric Ribas
1
Ich habe das gleiche Problem, das @Enric beim Zugriff auf die Standarddatenbank beschrieben hat, während Sie sich in einem anderen Projekt befinden. Gibt es eine Möglichkeit zu erkennen, welches Projekt auf der Clientseite verwendet wird, damit ich die Konfiguration ändern kann, um die App entsprechend zu initialisieren?
Zectbumo
7

Wenn Sie Node.js unter Windows verwenden, sollte Ihre Antwort lauten

firebase use <project_id>

aber ohne das <> zum Beispiel

firebase use chat-app-2a150

Mit dem folgenden Code können Sie alle Ihre Projekte anzeigen, um die richtige Projekt-ID auszuwählen

firebase projects:list
Meshach Koech
quelle
3

Sie können einfach einen Befehlszeilenschalter verwenden

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

Antwort im Jahr 2020:

Der offiziell empfohlene Weg ist die Verwendung von "Alias":

Legen Sie in Ihrem .firebasercdie verschiedenen Projekt-IDs fest:

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

Dann können Sie tun , firebase use testingoder firebase use productionzwischen Projekten zu wechseln.

Beachten Sie, dass beim Wechseln von Projekten kein Git-Diff erstellt wird. Es wird lediglich auf Ihrem lokalen Computer gespeichert. Führen Sie aus, um zu sehen, welches Projekt gerade verwendet wird firebase use.

Wenn Sie die Projekt-ID ändern möchten, ohne Änderungen am Projektbesitzer vorzunehmen .firebaserc, gehen Sie firebase use my-project-idlokal wie in der akzeptierten Antwort angegeben vor. Auf der anderen Seite, wenn Sie das Projekt Eigentümer und wollen , dass andere sind ihr eigenes Projekt - IDs verwenden, sollten Sie fügen .firebasercin .gitignore.

ZYinMD
quelle
0

Um das Zielprojekt der Firebase-App zu ändern, können Sie "firebase use myProjectName" eingeben. Ich habe auch die obigen Antworten "Firebase-Liste" verwendet, um zu überprüfen, welches Projekt ich habe (arbeite für mich in Firebase CLI 7.4 mit Angular 7 App)

yehonatan yehezkel
quelle
0

Die Antwort von Addition @ cutiko

Im 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 um eine benutzerdefinierte Konfigurationsumgebung zu erhalten

Im .firebaserc

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