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

Ein API-Schlüssel ist ein eindeutiger String, mit dem Anfragen bei der Interaktion mit Firebase- und Google-Diensten an Ihr Firebase-Projekt weitergeleitet werden. Auf dieser Seite finden Sie grundlegende Informationen zu API-Schlüsseln sowie Best Practices für die Verwendung und Verwaltung von API-Schlüsseln mit Firebase-Apps.

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.

API-Schlüssel für Firebase-Dienste können zwar sicher in Code eingefügt werden, Sie sollten sie jedoch überprüfen und entsprechende Einschränkungen und Limits anwenden.

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 folgenden Aktionen ausführen:

  • 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 in der Google Cloud Console erstellen, z. B. für die Entwicklung oder Fehlerbehebung. Weitere Informationen dazu, wann dies empfohlen werden kann, finden Sie weiter unten auf dieser Seite.

API-Schlüssel aufrufen

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

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-Apps für Apple: Den automatisch abgeglichenen API-Schlüssel finden Sie in der Firebase-Konfigurationsdatei GoogleService-Info.plist im Feld API_KEY.

  • Firebase-Android-Apps: Den automatisch abgeglichenen API-Schlüssel finden Sie in der Firebase-Konfigurationsdatei google-services.json im Feld 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. Insbesondere werden sie verwendet, um API-Anfragen für Kontingente und Abrechnung Ihrem Projekt zuzuordnen. Sie eignen sich auch für den Zugriff auf öffentliche Daten.

Sie können einen API-Schlüssel beispielsweise explizit verwenden, indem Sie seinen Wert als Abfrageparameter in einen REST API-Aufruf übergeben. In diesem Beispiel wird gezeigt, wie du eine Anfrage an die Dynamic Links Link Shortener API senden könntest:

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

Wenn Ihre App eine Firebase API aufruft, für die ein vom mobilen/Webclient bereitgestellter API-Schlüssel erforderlich ist, sucht Ihre App automatisch in der Firebase-Konfigurationsdatei/dem Firebase-Konfigurationsobjekt nach dem API-Schlüssel Ihres Projekts. Sie können jedoch API-Schlüssel für Ihre App mit einem anderen Mechanismus angeben, z. B. mithilfe von Umgebungsvariablen.

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.

APIs prüfen, 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 APIs, die dieser Zulassungsliste hinzugefügt wurden, sind Firebase-bezogene APIs, für die der Client zusammen mit dem Aufruf einen API-Schlüssel angeben muss. 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, dass Sie nicht die APIs entfernen, die für Firebase und die von Ihnen verwendeten Firebase-Dienste erforderlich sind. Weitere Informationen finden Sie in der Liste der Firebase-bezogenen APIs, die für jeden Dienst / jedes Produkt auf der Zulassungsliste 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 zuzugreifen und Authentifizierungsanfragen an Ihr Projekt zu senden.

Um das Risiko zu verringern, dass jemand einen API-Schlüssel für einen Brute-Force-Angriff missbraucht, können Sie das Standardkontingent der identitytoolkit.googleapis.com-Endpunkte so festlegen, dass es den normalen Traffic-Anforderungen Ihrer App entspricht. Wenn Sie dieses Kontingent verschärfen und Ihre App plötzlich mehr Nutzer hat, 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 einen Firebase-Dienst oder ein Firebase-Produkt bestimmt ist, empfehlen wir Ihnen dringend, separate, eingeschränkte API-Schlüssel für die Verwendung mit diesen APIs zu erstellen. 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. für Staging und Produktion, ist es wichtig, dass jede App-Instanz mit dem entsprechenden Firebase-Projekt interagiert. Ihre Staging-App-Instanz sollte beispielsweise niemals mit Ihrem Produktions-Firebase-Projekt kommunizieren. Das bedeutet auch, dass Ihre Staging-App API-Schlüssel verwenden muss, die mit Ihrem Firebase-Staging-Projekt verknüpft sind.

Um Probleme beim Übertragen von Codeänderungen von der Entwicklung über das Staging bis zur Produktion zu vermeiden, sollten Sie API-Schlüssel nicht direkt in den Code einfügen, sondern sie entweder als Umgebungsvariablen festlegen oder in eine Konfigurationsdatei einfügen.

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