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 an Ihr Firebase-Projekt weiterzuleiten, wenn Sie mit Firebase- und Google-Diensten interagieren. 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 typischen API-Schlüsseln

Im Gegensatz zur typischen Verwendung von API-Schlüsseln werden API-Schlüssel für Firebase-Dienste nicht verwendet, um den Zugriff auf Backend-Ressourcen 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. indem Sie einen Vault-Dienst verwenden oder die Schlüssel als Umgebungsvariablen festlegen. API-Schlüssel für Firebase-Dienste können jedoch im Code oder in eingecheckten Konfigurationsdateien enthalten sein.

Obwohl API-Schlüssel für Firebase-Dienste sicher im Code enthalten sein können, sollten Sie geeignete Einschränkungen und Limits für sie festlegen.

API-Schlüssel erstellen

Ein Firebase-Projekt kann viele API-Schlüssel haben, aber jeder API-Schlüssel kann nur einem Firebase-Projekt zugeordnet werden.

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-Konsole erstellen, z. B. für die Entwicklung oder das Debugging. Weitere Informationen dazu, wann dies empfohlen werden kann, finden Sie weiter unten auf dieser Seite.

API-Schlüssel finden

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

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

  • Firebase Apple-Apps: Den automatisch abgeglichenen API-Schlüssel finden Sie in der Firebase-Konfigurationsdatei GoogleService-Info.plist im Feld API_KEY.

  • Firebase-Android-Apps: Der automatisch abgeglichene API-Schlüssel befindet sich in der Firebase-Konfigurationsdatei google-services.json im Feld current_key.

  • Firebase-Webanwendungen: Der automatisch abgeglichene API-Schlüssel befindet sich im Firebase-Konfigurationsobjekt im Feld apiKey.

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 Ihrem Projekt für Kontingente und die Abrechnung zuzuordnen. Sie sind auch nützlich für den Zugriff auf öffentliche Daten.

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

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

Wenn Ihre App einen Aufruf an eine Firebase API sendet, für die ein vom Mobil-/Webclient bereitgestellter API-Schlüssel erforderlich ist, sucht Ihre App automatisch in der Firebase-Konfigurationsdatei bzw. im Firebase-Konfigurationsobjekt nach dem API-Schlüssel Ihres Projekts. Sie können API-Schlüssel für Ihre App jedoch über einen anderen Mechanismus, z. B. Umgebungsvariablen, bereitstellen.

Geeignete Einschränkungen für API-Schlüssel prüfen und anwenden (empfohlen)

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

Automatisch auf die Zulassungsliste für Ihre Firebase-API-Schlüssel gesetzte APIs prüfen

Wenn Firebase einen API-Schlüssel in Ihrem Projekt erstellt, fügen wir diesem Schlüssel automatisch API-Einschränkungen hinzu. Die dieser Zulassungsliste hinzugefügten APIs sind Firebase-bezogene APIs, für die der Client bei jedem 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 aus der Zulassungsliste entfernen. Achten Sie jedoch darauf, nicht die APIs zu entfernen, die für Firebase und die von Ihnen verwendeten Firebase-Dienste erforderlich sind. Eine Liste der Firebase-bezogenen APIs, die für jeden Dienst / jedes Produkt auf der Zulassungsliste stehen müssen, finden Sie unten. Andernfalls erhalten Sie Fehler, wenn Sie Firebase-Dienste aufrufen.

.

Kontingent einschränken, wenn Sie die passwortbasierte Authentication verwenden

Wenn Sie Firebase Authentication verwenden und jemand Ihren API-Schlüssel erhält, kann er nicht auf die Datenbank oder Cloud Storage-Daten Ihres Firebase-Projekts zugreifen, solange diese Daten durch Firebase Security Rules geschützt sind. Sie könnten jedoch Ihren API-Schlüssel verwenden, um auf die Authentifizierungsendpunkte von Firebase zuzugreifen und Authentifizierungsanfragen für Ihr Projekt zu stellen.

Um das Risiko zu minimieren, dass jemand einen API-Schlüssel für einen Brute-Force-Angriff missbraucht, können Sie das Standardkontingent der identitytoolkit.googleapis.com-Endpunkte an die normalen Traffic-Erwartungen Ihrer App anpassen. Wenn Sie dieses Kontingent einschränken und die Nutzerzahlen Ihrer App plötzlich steigen, können Anmeldefehler auftreten, 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 alle Nicht-Firebase-Dienste verwenden

API-Schlüssel, die für Firebase-Dienste verwendet werden, müssen im Allgemeinen nicht als geheim behandelt werden. Bei API-Schlüsseln, die Sie mit anderen Google Cloud-APIs verwenden, sollten Sie jedoch 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 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 bestimmt ist.

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 rotieren oder ersetzen und zusätzliche Einschränkungen für die API-Schlüssel hinzufügen, ohne die Nutzung von Firebase-Diensten zu unterbrechen.

Umgebungsspezifische API-Schlüssel verwenden (empfohlen)

Wenn Sie verschiedene Firebase-Projekte für verschiedene Umgebungen wie Staging und Produktion einrichten, ist es wichtig, dass jede App-Instanz mit dem entsprechenden Firebase-Projekt interagiert. Ihre Staging-App-Instanz sollte beispielsweise niemals mit Ihrem Firebase-Produktionsprojekt kommunizieren. Das bedeutet auch, dass für Ihre Staging-App API-Schlüssel verwendet werden müssen, die mit Ihrem Firebase-Staging-Projekt verknüpft sind.

Um Probleme beim Übertragen von Codeänderungen von der Entwicklung über die Staging-Umgebung in die Produktionsumgebung zu vermeiden, sollten Sie API-Schlüssel nicht in den Code selbst einfügen, sondern 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 erstellen und verwenden, der nur für das Debugging bestimmt ist. Eine Anleitung zum Erstellen eines solchen Schlüssels finden Sie in der Firebase ML-Dokumentation.

Häufig gestellte Fragen und Fehlerbehebung

Häufig gestellte Fragen

Fehlerbehebung