Ich verwende http-Cloud-Funktionen, um auf eine Anfrage zu warten und dann eine einfache Nachricht zurückzugeben.
Ich entwickle Cloud-Funktionen lokal mit:
firebase serve --only functions
Ich habe einige benutzerdefinierte Umgebungsvariablen mit eingerichtet
firebase functions:config:set
Der Zugriff auf die benutzerdefinierten Konfigurationsvariablen mit dem folgenden Code funktioniert einwandfrei, wenn das Projekt bereitgestellt wird
functions.config()
Bei lokaler Entwicklung funktioniert dies jedoch nicht. Wenn die Funktion durch Drücken von: http: // localhost: 5002 / my-project-name / us-central1 / functionName ausgelöst wird, kann ich nicht auf die benutzerdefinierten Konfigurationsvariablen zugreifen. Wenn ich functions.config () lokal verwende, kann ich die Standardkonfiguration sehen, nur nicht meine benutzerdefinierten Konfigurationsvariablen
Gibt es eine alternative Lösung oder bewährte Methode für Umgebungsvariablen, wenn Sie lokal arbeiten?
quelle
Antworten:
Ab sofort müssen Sie mit diesem Befehl manuell eine
.runtimeconfig.json
Datei in Ihrem Funktionsverzeichnis erstellen . Führen Sie dann den Serve-Befehl aus.Wenn Sie Windows Powershell verwenden, ersetzen Sie das oben Gesagte durch:
Weitere Informationen finden Sie unter https://firebase.google.com/docs/functions/local-emulator
quelle
functions
wie in dem oben genannten Beitrag in Ihrem Verzeichnis befinden muss. Führen Sie also den obigen Ausschnitt aus, ohne sich zuerst im Funktionsverzeichnis zu befinden (sagen Sie, wenn Sie sich stattdessen im Stammverzeichnis des Firebase-Projekts befinden). wird nicht funktionieren. In diesem Fall müssten Siefirebase functions:config:get > functions/.runtimeconfig.json
stattdessen so etwas ausführen .firebase functions:config:get > .runtimeconfig.json
jeder Ausführung auf einem Mac tatsächlich alle Daten in dieser Datei durch ein leeres JSON-Objekt ersetzt werden. Ich habe es mit verschiedenen Dateinamen wie.devConfig.json
und versucht.serveConfig.json
, aber der im Befehl angegebene Dateiname wird überschrieben mit einem leeren JSON-Objekt ..Für diejenigen, die die Umgebungsvariablen (process.env) verwenden möchten, befolge ich diese Problemumgehung.
Legen Sie die Konfigurationswerte vor der Bereitstellung fest
Lesen Sie die Konfiguration und aktualisieren Sie die env-Variablen als erstes unter Ihrem Funktionscode.
quelle
Sie können eine Datei mit dem Namen .env.json behalten und laden, wenn Sie den Bereitstellungsbefehl auslösen
quelle
Ich habe das Problem auf Windows Powershell eingegrenzt.
Das Ausführen von Firebase-Funktionen: config: get> .runtimeconfig.json in Powershell generiert einen defekten JSON. Ich weiß nicht warum. Wenn dieser analysiert wird, wird in JSON an Position 0 ein unerwartetes Token angezeigt.
Ich habe es geschafft, es zu sortieren, indem ich den Generierungsbefehl .runtimeconfig.json in der Windows-Eingabeaufforderung ausgeführt habe.
quelle
Ich bin nicht sicher, ob die am besten bewertete Antwort funktioniert oder nicht, aber für die Firebase-Funktion auf dem Mac (lokal zu bedienen) mache ich so etwas
Wo Admin-Schlüssel sind
Dadurch wird die Konfiguration von geladen
.runtimeconfig.json
Für die Produktion müssten Sie es manuell einstellen, indem Sie so etwas tun
quelle