Weitere Informationen zum Verwenden und Verwalten von API-Schlüsseln für Firebase

Ein API-Schlüssel ist ein eindeutiger String, der verwendet wird, um Anfragen bei der Interaktion mit Firebase- und Google-Diensten an Ihr Firebase-Projekt weiterzuleiten. Auf dieser Seite wird Folgendes beschrieben: grundlegende Informationen zu API-Schlüsseln sowie Best Practices für die Verwendung und API-Schlüssel mit Firebase-Apps verwalten.

Allgemeine Informationen zu API-Schlüsseln und Firebase

API-Schlüssel für Firebase unterscheiden sich von herkömmlichen API-Schlüsseln

Im Gegensatz zur üblichen Verwendung von API-Schlüsseln werden API-Schlüssel für Firebase-Dienste nicht verwendet, um den Zugriff auf Backendressourcen zu steuern. Das ist nur mit Firebase Security Rules (um zu steuern, welche Endnutzer auf Ressourcen zugreifen können) und Firebase App Check (um zu steuern, welche Apps auf Ressourcen zugreifen können) möglich.

Normalerweise müssen Sie API-Schlüssel sorgfältig schützen, z. B. mit einem Tresordienst oder indem Sie die Schlüssel als Umgebungsvariablen festlegen. API-Schlüssel für Firebase-Dienste können jedoch in Code oder in eingecheckten Konfigurationsdateien eingefügt werden.

Obwohl die Einbindung von API-Schlüsseln für Firebase-Dienste sicher in Code ist, sollten Sie überprüfen Sie sie und wenden Sie angemessene Einschränkungen und Limits für sie an.

API-Schlüssel erstellen

Ein Firebase-Projekt kann viele API-Schlüssel haben, aber jeder API-Schlüssel kann nur mit einem einzigen Firebase-Projekt verknüpft sein.

API-Schlüssel, die automatisch von Firebase für Ihre Firebase-Apps erstellt werden

Firebase erstellt automatisch API-Schlüssel für Ihr Projekt, wenn Sie eine der Folgendes:

  • Firebase-Projekt erstellen > Browser key automatisch erstellt
  • Firebase-Apple-App erstellen > iOS key automatisch erstellt
  • Firebase-Android-App erstellen > Android key automatisch erstellt

Sie können auch eigene API-Schlüssel erstellen in der Google Cloud-Konsole, zum Beispiel für die Entwicklung oder Fehlerbehebung. Weitere Informationen über wann dies möglicherweise weiter unten auf dieser Seite empfohlen wird.

API-Schlüssel aufrufen

Sie können alle API-Schlüssel Ihres Projekts in der APIs und Dienste > Anmeldedaten in der Google Cloud-Konsole.

An den folgenden Stellen können Sie auch nachsehen, welcher API-Schlüssel automatisch mit einer Firebase-App abgeglichen wird. Standardmäßig verwenden alle Firebase-Apps Ihres Projekts für dieselbe Plattform (Apple, Android oder Web) denselben API-Schlüssel.

  • Firebase Apple-Apps – Suchen Sie den automatisch zugeordneten API-Schlüssel in der Firebase-App Konfigurationsdatei GoogleService-Info.plist im API_KEY.

  • Firebase-Android-Apps: Den automatisch zugeordneten API-Schlüssel finden Sie in der Firebase-Konfigurationsdatei google-services.json im current_key.

  • Firebase-Webanwendungen: Suchen Sie im Firebase-Config-Objekt im Feld apiKey nach dem automatisch abgeglichenen API-Schlüssel.

API-Schlüssel verwenden

API-Schlüssel werden verwendet, um Ihr Firebase-Projekt bei der Interaktion mit Firebase-/Google-Diensten zu identifizieren. Sie werden verwendet, um API-Anfragen mit Ihrem Projekt für Kontingente und Abrechnung. Sie sind auch nützlich, um auf öffentliche Daten.

Sie können beispielsweise einen API-Schlüssel explizit verwenden, indem Sie seinen Wert als Abfrageparameter in einen REST API-Aufruf übergeben. Dieses Beispiel zeigt, wie Sie zu den Dynamic Links Link Shortener API:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Wenn Ihre App eine Firebase API aufruft, für die ein bereitgestellten API-Schlüssel erforderlich ist vom Mobil-/Webclient verwendet, sucht Ihre App automatisch im Firebase-Konfigurationsdatei bzw. -Objekt für den API-Schlüssel Ihres Projekts. Sie können jedoch API-Schlüssel für Ihre Anwendung mit einem anderen Mechanismus bereitstellen, z. B. für die Umgebung Variablen.

Prüfen Sie die API-Schlüssel und wenden Sie geeignete Einschränkungen an (empfohlen)

Es ist zwar nicht erforderlich, einen API-Schlüssel für Firebase-Dienste als Secret zu behandeln, Sie sollten jedoch die in diesem Abschnitt beschriebenen Einschränkungen und Limits prüfen und anwenden.

Prüfen Sie die APIs, die automatisch der Zulassungsliste für Ihre Firebase API-Schlüssel hinzugefügt wurden

Wenn Firebase einen API-Schlüssel in Ihrem Projekt erstellt, fügen wir diesem Schlüssel automatisch API-Einschränkungen hinzu. Die auf diese Zulassungsliste gesetzten APIs sind Firebase-bezogene APIs, die Der Client muss zusammen mit dem Aufruf einen API-Schlüssel angeben. Die meisten APIs, die für die Nutzung von Firebase-Diensten erforderlich sind, müssen nicht auf der Zulassungsliste für Ihre API-Schlüssel stehen.

Da Firebase die erforderlichen APIs für alle Firebase-Dienste hinzufügt, kann die Zulassungsliste für einen API-Schlüssel APIs für Produkte enthalten, die Sie nicht verwenden. Sie können APIs von der Zulassungsliste entfernen, aber achten Sie darauf, Entfernen Sie die APIs, die für Firebase und die von Ihnen verwendeten Firebase-Dienste erforderlich sind. (siehe Liste der Firebase-bezogenen APIs die auf der Zulassungsliste für die einzelnen Dienste / Produkte stehen müssen. Andernfalls erhalten Sie Fehler, wenn Sie Firebase-Dienste aufrufen.

Kontingent verkleinern, wenn Sie passwortbasierte Authentication verwenden

Wenn Sie eine passwortbasierte Firebase Authentication verwenden und jemand Ihren API-Schlüssel in die Hände bekommt, kann er nicht auf die Datenbank oder die Cloud Storage-Daten Ihres Firebase-Projekts zugreifen, sofern diese Daten durch Firebase Security Rules geschützt sind. Sie können jedoch Ihren API-Schlüssel verwenden, um auf die Authentifizierungsendpunkte von Firebase und senden Authentifizierungsanfragen an für Ihr Projekt.

Um das Risiko zu minimieren, dass ein API-Schlüssel missbraucht wird, um einen Brute-Force-Angriff versuchen, können Sie das Standardkontingent identitytoolkit.googleapis.com Endpunkte, um den normalen Traffic widerzuspiegeln Erwartungen an Ihre App haben. Beachten Sie Folgendes: Wenn Sie dieses Kontingent und Ihre Anwendung plötzlich mehr Nutzer anzieht, kann es zu Anmeldefehlern kommen, bis Sie das Kontingent erhöhen. Sie können die API-Kontingente Ihres Projekts in der Google Cloud-Konsole ändern.

Separate, eingeschränkte API-Schlüssel für Dienste verwenden, die nicht zu Firebase gehören

API-Schlüssel, die für Firebase-Dienste verwendet werden, müssen zwar im Allgemeinen nicht als geheim behandelt werden, Sie sollten jedoch bei API-Schlüsseln, die Sie mit anderen Google Cloud APIs verwenden, einige zusätzliche Vorsichtsmaßnahmen treffen.

Wenn Sie eine Google Cloud API (auf einer beliebigen Plattform) verwenden, die nicht für Firebase vorgesehen ist Dienst / Produkt haben, empfehlen wir dringend die Erstellung separater, eingeschränkter API-Schlüssel für die Verwendung mit diesen APIs. Das ist besonders wichtig, wenn die API für einen abrechenbaren Google Cloud-Dienst verwendet wird.

Wenn Sie beispielsweise Firebase ML und die Cloud Vision APIs unter iOS verwenden, sollten Sie separate API-Schlüssel erstellen, die Sie nur für den Zugriff auf die Cloud Vision APIs verwenden.

Wenn Sie separate, eingeschränkte API-Schlüssel für nicht Firebase-APIs verwenden, können Sie die Schlüssel bei Bedarf wechseln oder ersetzen und den API-Schlüsseln zusätzliche Einschränkungen hinzufügen, ohne die Nutzung der Firebase-Dienste zu beeinträchtigen.

Umgebungsspezifische API-Schlüssel verwenden (empfohlen)

Wenn Sie verschiedene Firebase-Projekte für verschiedene Umgebungen einrichten, z. B. Staging und Produktion, ist es wichtig, dass jede Anwendungsinstanz mit ihrer entsprechendes Firebase-Projekt. Die Staging-App-Instanz sollte beispielsweise nie mit Ihrem Firebase-Produktionsprojekt sprechen. Das bedeutet auch, dass Ihre Die Staging-App muss API-Schlüssel verwenden, die mit Ihrem Staging-Firebase-Projekt verknüpft sind.

Um Probleme beim Hochstufen von Codeänderungen von der Entwicklung über das Staging bis hin zu Production verwenden, anstatt API-Schlüssel in den Code selbst zu integrieren, können Sie diese entweder als Umgebungsvariablen verwenden oder in eine Konfigurationsdatei aufnehmen.

Wenn Sie Firebase Local Emulator Suite für die Entwicklung zusammen mit Firebase ML verwenden, müssen Sie einen API-Schlüssel nur zum Debuggen erstellen und verwenden. Eine Anleitung zum Erstellen dieser Art von Schlüssel findest du in der Firebase ML-Dokumentation.

FAQs und Fehlerbehebung

Häufig gestellte Fragen

Fehlerbehebung