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

Ein API-Schlüssel ist ein eindeutiger String, mit dem Anfragen an Ihr Firebase-Projekt weitergeleitet werden wenn Sie mit Firebase und Google-Diensten interagieren. 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 typischen API-Schlüsseln

Im Gegensatz zu API-Schlüsseln werden API-Schlüssel für Firebase-Dienste nicht verwendet, um den Zugriff auf Back-End-Ressourcen zu steuern die nur in einer 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)

In der Regel müssen Sie API-Schlüssel (z. B. indem Sie einen Vault-Dienst verwenden oder die Schlüssel als Umgebungsvariablen festlegen. Allerdings API-Schlüssel für Firebase-Dienste können in den Code oder die Konfiguration für eingecheckte Nutzer aufgenommen werden -Dateien.

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 werden.

Von Firebase automatisch für Ihre Firebase-Apps erstellte API-Schlüssel

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 im Bereich APIs & Dienste > Anmeldedaten in der Google Cloud-Konsole aufrufen und verwalten.

Sie können auch sehen, welcher API-Schlüssel automatisch einem Firebase App. 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 zugeordneten API-Schlüssel finden Sie in der Firebase-Konfigurationsdatei google-services.json im current_key.

  • Firebase Web-Apps – Sie finden den automatisch übereinstimmenden API-Schlüssel in der Firebase-App. config-Objekt im Feld apiKey ein.

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 von öffentlichen Daten.

Sie können beispielsweise einen API-Schlüssel explizit verwenden, indem Sie seinen Wert an eine REST-Anfrage senden. API-Aufruf als Abfrageparameter. 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 App mit einem anderen Mechanismus angeben, z. B. mithilfe von Umgebungsvariablen.

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

Es ist zwar nicht notwendig, einen API-Schlüssel für Firebase-Dienste als sollten Sie die in diesem Artikel .

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

Wenn Firebase in Ihrem Projekt einen API-Schlüssel erstellt, fügen wir „API-Einschränkungen“ auf diesen Schlüssel. Bei den APIs auf dieser Zulassungsliste handelt es sich um Firebase-bezogene APIs, die Der Client muss zusammen mit dem Aufruf einen API-Schlüssel angeben. Die meisten APIs, die für die Verwendung von Firebase-Diensten erforderlich sind, müssen sich nicht auf dem Zulassungsliste für Ihre API-Schlüssel.

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 für Firebase und die verwendeten Firebase-Dienste erforderlichen APIs. (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 passwortbasierte Firebase Authentication verwenden und jemand Zugriff auf Ihre API erhält haben, können sie nicht auf die Datenbank Ihres Firebase-Projekts zugreifen oder Cloud Storage-Daten , sofern diese Daten durch Firebase Security Rules 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 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.

Separate, eingeschränkte API-Schlüssel für Nicht-Firebase-Dienste verwenden

Obwohl API-Schlüssel für Firebase-Dienste im Allgemeinen nicht behandelt werden müssen, sollten Sie bei Verwendung von API-Schlüsseln zusätzliche Vorsichtsmaßnahmen ergreifen, mit anderen Google Cloud-APIs.

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, geben Sie sollten separate API-Schlüssel erstellen, die Sie nur verwenden für den Zugriff auf die Cloud Vision APIs.

Durch die Verwendung separater, eingeschränkter API-Schlüssel für Nicht-Firebase-APIs können Sie rotieren oder Ersetzen Sie die Schlüssel bei Bedarf und fügen Sie der API weitere Einschränkungen hinzu. Schlüssel ohne Ihre Nutzung der Firebase-Dienste zu unterbrechen.

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. Ihre 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.

Hinweis: Wenn Sie das Firebase Local Emulator Suite für die Entwicklung verwenden, mit Firebase ML müssen Sie einen API-Schlüssel nur zur Fehlerbehebung 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