Weitere Informationen zum Verwenden und Verwalten von API-Schlüsseln für Firebase
Mit Sammlungen den Überblick behalten
Sie können Inhalte basierend auf Ihren Einstellungen speichern und kategorisieren.
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.
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.
Anleitung zum Erstellen API-spezifischer Schlüssel
In dieser Anleitung wird beschrieben, wie Sie einen separaten, eingeschränkten API-Schlüssel für eine gefälschte API namens Super Service API erstellen.
Schritt 1: Bestehende API-Schlüssel so konfigurieren, dass der Zugriff auf Super Service API nicht zulässig ist
Öffnen Sie in der Google Cloud-Konsole die Seite Anmeldedaten. Wählen Sie Ihr Projekt aus, wenn Sie dazu aufgefordert werden.
Öffnen Sie für jeden vorhandenen API-Schlüssel in der Liste die Bearbeitungsansicht.
Wählen Sie im Abschnitt API-Einschränkungen die Option Schlüssel einschränken aus und fügen Sie dann
Listen Sie alle APIs auf, auf die der API-Schlüssel Zugriff haben soll. Achten Sie darauf,
Die API, für die Sie einen separaten API-Schlüssel erstellen, nicht einschließen
(in diesem Beispiel Super Service API).
Wenn Sie die API-Einschränkungen eines API-Schlüssels konfigurieren, geben Sie explizit die APIs an, auf die der Schlüssel Zugriff hat. Wenn im Abschnitt API-Einschränkungen die Option Schlüssel nicht einschränken ausgewählt ist, kann mit einem API-Schlüssel auf jede API zugegriffen werden, die für das Projekt aktiviert ist.
Ihre vorhandenen API-Schlüssel gewähren jetzt keinen Zugriff mehr auf Super Service API. Jeder Schlüssel funktioniert jedoch weiterhin für alle APIs, die Sie der Liste der API-Einschränkungen hinzugefügt haben.
Schritt 2: Neuen API-Schlüssel für den Zugriff auf Super Service API erstellen und verwenden
Kehren Sie zur Seite Anmeldedaten zurück. Achten Sie darauf, dass Ihr Firebase-Projekt noch ausgewählt ist.
Klicken Sie auf Anmeldedaten erstellen > API-Schlüssel. Notieren Sie sich den neuen API-Schlüssel und klicken Sie dann auf Schlüssel einschränken.
Wählen Sie im Abschnitt API-Einschränkungen die Option Schlüssel einschränken aus und fügen Sie dann
Listen Sie nur die Super Service API auf.
Dieser neue API-Schlüssel gewährt nur Zugriff auf den Super Service API.
Konfigurieren Sie Ihre App und Dienste für die Verwendung des neuen API-Schlüssels.
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
sind API-Schlüssel
für Firebase-Dienste standardmäßig eingeschränkt?
Ja. Standardmäßig werden für alle API-Schlüssel, die von Firebase automatisch für die Verwendung mit Firebase-bezogenen APIs bereitgestellt werden, automatisch API-Einschränkungen angewendet. Liste der Firebase-bezogenen APIs, die auf dieser Zulassungsliste stehen
Die APIs, die dieser Zulassungsliste hinzugefügt werden, sind APIs, die von Firebase-Diensten aus Clientcode aufgerufen werden und API-Schlüssel zur Identifizierung Ihres Firebase-Projekts oder Ihrer Firebase-App erfordern. Die meisten APIs, die für die Verwendung 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,
Die Zulassungsliste für einen API-Schlüssel kann APIs für Produkte enthalten, die Sie nicht verwenden. Ich
APIs von der Zulassungsliste entfernen können, aber Sie sollten sehr vorsichtig sein, wenn 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.
Sie können alle Ihre API-Schlüssel und die zugehörigen API-Einschränkungen ansehen in der
APIs und Dienste > Anmeldedaten
in der Google Cloud-Konsole.
Beachten Sie bei der Anwendung dieser API-Einschränkungen Folgendes:
Ab Mai 2024 werden alle neuen API-Schlüssel, die von Firebase automatisch bereitgestellt werden,
automatisch auf die
Liste der Firebase-bezogenen APIs
Im Mai 2024 wurden alle vorhandenen und uneingeschränkten API-Schlüssel von Firebase
die zuvor automatisch bereitgestellt wurden, sind auf die
Liste der Firebase-bezogenen APIsplus alle derzeit aktivierten APIs des Projekts.
Bestehende und bereits eingeschränkte API-Schlüssel, die zuvor automatisch über Firebase bereitgestellt wurden, wurden nicht geändert.
Vorhandene API-Schlüssel, die nicht automatisch von Firebase bereitgestellt wurden,
geändert.
Wie finde ich heraus, welcher API-Schlüssel mit meiner Firebase-App verknüpft ist?
Mit den folgenden Optionen können Sie bestimmen, welcher API-Schlüssel
die mit Ihrer Firebase-App verknüpft sind:
Firebase Console
Gehen Sie zu settingsProjekteinstellungen und scrollen Sie dann nach unten zur Karte Meine Apps.
Wählen Sie die gewünschte App aus.
Rufen Sie die Firebase-Konfigurationsdatei/das Firebase-Konfigurationsobjekt für die gewünschte App ab und suchen Sie dann den API-Schlüssel:
Apple: Laden Sie die Datei GoogleService-Info.plist herunter und suchen Sie dann nach
Feld API_KEY
Android: Laden Sie die google-services.json herunter, suchen Sie die Konfiguration für
die gewünschte App (suchen Sie nach ihrem Paketnamen) und suchen Sie dann
Feld current_key
Web: Wählen Sie die Option Config aus und suchen Sie dann nach dem Feld apiKey.
Firebase CLI
Rufen Sie die Firebase-Konfigurationsdatei/das Firebase-Konfigurationsobjekt für die gewünschte App mit dem folgenden Befehl ab:
firebase apps:sdkconfig PLATFORMFIREBASE_APP_ID
PLATFORM (eine der folgenden Optionen): IOS | ANDROID | WEB
FIREBASE_APP_ID: die von Firebase zugewiesene eindeutige Kennung für
Ihre Firebase-App (App-ID ermitteln)
Suchen Sie in der ausgedruckten Firebase-Konfiguration der App nach dem API-Schlüssel:
Apple: Suchen Sie nach dem Feld API_KEY.
Android: Suchen Sie die Konfiguration für die gewünschte App (suchen Sie nach den
Paketname) und suchen Sie dann das Feld current_key.
Web: Suchen Sie nach dem Feld apiKey.
REST API
Rufen Sie die apiKeyId (die UID) des API-Schlüssels ab, indem Sie die Methode
Endpunkt für die betreffende App zu erstellen. Anschließend wird der Parameter
apiKeyId mit dem nächsten Schritt fortfahren.
Dieser keyString ist mit dem Wert identisch, der im Konfigurationsartefakt der App zu finden ist (Apple | Android | Web).
Kann ich in meiner Firebase-Konfigurationsdatei/-objekt zwei API-Schlüssel für dieselbe Firebase-App angeben?
Firebase Apple-Apps – Jede App hat eine eigene Konfigurationsdatei und kann nur
einen API-Schlüssel aufgeführt.
Firebase-Android-Apps: Alle Android-Apps im Firebase-Projekt sind in derselben Konfigurationsdatei aufgeführt. Jede App kann nur einen API-Schlüssel enthalten. Für jede App in dieser Konfigurationsdatei kann ein anderer Schlüssel aufgeführt sein.
aber.
Firebase-Web-Apps – Jede App hat ein eigenes Konfigurationsobjekt und kann
einen API-Schlüssel aufgeführt.
Sie können jedoch mehrere API-Schlüssel für eine App verwenden. Sie müssen eine
Mechanismus, mit dem Ihre App auf diese anderen API-Schlüssel zugreifen kann, z. B. über eine Umgebung
. Der Mechanismus für den Zugriff auf die anderen API-Schlüssel kann nicht davon abhängen
API-Schlüssel werden in Ihrer Firebase-Konfigurationsdatei bzw. Ihrem Firebase-Objekt aufgelistet.
Wie funktioniert Firebase?
wissen, welcher API-Schlüssel einer App zugeordnet werden soll (z. B. in der Firebase-Konfiguration
Datei/Objekt)?
Wenn Firebase keine übereinstimmenden eingeschränkten Schlüssel findet, wird eine entsprechende Auflistung in
Konfigurationsdatei/Objekt: iOS key für Apple-Apps und Android key für
Android-Apps und Browser key für Web-Apps (sofern diese Schlüssel vorhanden sind)
und haben keine "Anwendungseinschränkungen". die sie davon abhalten,
App).
Kann ich manuell
API-Schlüssel und -Feld aus meiner Firebase-Konfigurationsdatei bzw. meinem Firebase-Objekt löschen?
Ja, Sie können Ihren API-Schlüssel manuell aus Ihrer Konfigurationsdatei/Ihrem Objekt löschen. Sie müssen jedoch einen anderen Mechanismus für Ihre App bereitstellen, um auf einen API-Schlüssel zuzugreifen (z. B. über eine Umgebungsvariable). Andernfalls werden alle Aufrufe von Firebase-Diensten
schlägt fehl.
Kann ich meine Firebase-Konfigurationsdatei/-objekte manuell mit anderen API-Schlüsseln bearbeiten?
Ja, Sie können eine Konfigurationsdatei/ein Konfigurationsobjekt manuell bearbeiten, um einer App einen anderen API-Schlüssel zuzuordnen.
Kann ich ein
API-Schlüssel von einem Firebase-Projekt zum anderen?
Nein, ein API-Schlüssel identifiziert nur ein bestimmtes Projekt und kann nicht in ein anderes verschoben werden
Projekt arbeiten.
Was passiert, wenn ich einen in der Google Cloud Console aufgeführten API-Schlüssel lösche?
Wenn Sie einen API-Schlüssel löschen, der von einer App verwendet wird, schlagen API-Aufrufe von dieser App fehl. Möglicherweise erhalten Sie Berichte, E-Mails oder Fehlermeldungen, dass Sie versuchen, einen ungültigen API-Schlüssel zu verwenden.
Das Löschen eines API-Schlüssels ist endgültig und kann nicht rückgängig gemacht werden.
Welche APIs sind auf der Zulassungsliste „API-Einschränkungen“ für einen Firebase API-Schlüssel erforderlich?
Für einen Firebase API-Schlüssel müssen die einzigen APIs auf der
„API-Einschränkungen“ sind die APIs, für die der Client eine
API-Schlüssel zusammen mit dem Aufruf. Diese Anforderung gilt nur für sehr wenige Firebase-bezogene APIs. Die meisten in Ihrem Projekt aktivierten Firebase-bezogenen APIs müssen nicht auf der Zulassungsliste „API-Einschränkungen“ des Schlüssels stehen.
* Nur erforderlich, wenn Sie den Firebase API-Schlüssel mit einem Drittanbieter
oder direkten REST-Zugriff auf den Firebase-Dienst bzw. das Firebase-Produkt haben.
** Erforderlich für frühere Versionen des Produkt-SDK. Wenn Sie die neueste Version des SDKs verwenden, muss die API nicht auf der Zulassungsliste des Schlüssels stehen.
Fehlerbehebung
Wie kann ich
Fehler API_KEY_SERVICE_BLOCKED oder Forbidden 403 beheben,
Anfragen an diese API blockiert?
Folgen Sie der Anleitung in diesen FAQs, wenn Sie einen API_KEY_SERVICE_BLOCKED-Fehler oder einen Fehler wie den folgenden erhalten:
Forbidden: 403 POST https://example-service.googleapis.com/method: Requests to this API example-service.googleapis.com method google.example-service.rest.method are blocked.
Auf den API-Schlüssel, den Ihre App zum Aufrufen der API verwendet, sind wahrscheinlich API-Einschränkungen angewendet und die API ist nicht in der Zulassungsliste des Schlüssels enthalten.
Wie kann ich
um diesen Fehler zu beheben? „Die Mess-ID dieser Firebase-App konnte nicht aus dem
Server.“
Für den von Ihrer Webanwendung verwendeten API-Schlüssel gelten wahrscheinlich API-Einschränkungen. Prüfen Sie in diesem Fall, ob die Firebase Management API
ist in der Liste der zulässigen APIs enthalten.
Ich habe eine E-Mail oder einen Fehler erhalten, dass mein API-Schlüssel ungültig ist. Was ist passiert und wie kann ich das Problem beheben?
Im Folgenden sind einige der häufigsten Ursachen für ungültige API-Schlüssel aufgeführt:
Der API-Schlüssel enthält
„API-Schlüsseleinschränkungen“
angewendet werden, sodass sie der App, die versucht, den Schlüssel zu verwenden, nicht mehr zugeordnet werden kann.
(„Anwendungseinschränkungen“) oder nicht verwendbar für die aufgerufene API („API“).
Einschränkungen").
Der API-Schlüssel wurde in der Google Cloud-Konsole aus dem Projekt gelöscht.
Der API-Schlüssel wurde nicht für die Projekt-ID erstellt, die in der
Firebase-Konfigurationsdatei/-objekt.
[[["Leicht verständlich","easyToUnderstand","thumb-up"],["Mein Problem wurde gelöst","solvedMyProblem","thumb-up"],["Sonstiges","otherUp","thumb-up"]],[["Benötigte Informationen nicht gefunden","missingTheInformationINeed","thumb-down"],["Zu umständlich/zu viele Schritte","tooComplicatedTooManySteps","thumb-down"],["Nicht mehr aktuell","outOfDate","thumb-down"],["Problem mit der Übersetzung","translationIssue","thumb-down"],["Problem mit Beispielen/Code","samplesCodeIssue","thumb-down"],["Sonstiges","otherDown","thumb-down"]],["Zuletzt aktualisiert: 2024-11-10 (UTC)."],[],[]]