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.
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.
Anleitung zum Erstellen API-spezifischer Schlüssel ansehen
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: Vorhandene API-Schlüssel konfigurieren, um den Zugriff auf Super Service API zu verhindern
Öffnen Sie die Anmeldedaten.
der Google Cloud-Konsole. 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,
Deklaration der APIs, auf die der Schlüssel Zugriff hat Wenn der Parameter
Im Abschnitt API-Einschränkungen ist die Option Schlüssel nicht einschränken ausgewählt, ein API-Schlüssel
kann für den Zugriff auf jede API verwendet werden, die für das Projekt aktiviert ist.
Jetzt gewähren Ihre vorhandenen API-Schlüssel keinen Zugriff auf Super Service API, aber
funktioniert jeder Schlüssel weiterhin für alle APIs, die Sie seinem
Liste der API-Einschränkungen.
Schritt 2: Neuen API-Schlüssel für den Zugriff auf Super Service API erstellen und verwenden
Kehren Sie zu den Anmeldedaten zurück.
Seite. 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.
Klicken Sie 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 die Super Service API.
Konfigurieren Sie Ihre Anwendung 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. 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
sind API-Schlüssel
für Firebase-Dienste standardmäßig eingeschränkt?
Ja, standardmäßig alle API-Schlüssel, die Firebase automatisch für die Verwendung mit
Firebase-bezogene APIs haben
„API-Einschränkungen“
automatisch angewendet. Weitere Informationen finden Sie in der
Liste der Firebase-bezogenen APIs
die auf dieser Zulassungsliste stehen.
Diese Zulassungsliste enthält die APIs, die von Firebase-Diensten aus aufgerufen werden:
und API-Schlüssel zur Identifizierung Ihres Firebase-Projekts oder
Beachten Sie, dass die meisten APIs, die für die Verwendung von Firebase-Diensten erforderlich sind,
müssen 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 Fehler, wenn Firebase-Dienste aufgerufen werden.
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.
So werden diese „API-Einschränkungen“ von Firebase angewendet:
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.
Alle vorhandenen und bereits eingeschränkten API-Schlüssel, die Firebase zuvor
automatisch bereitgestellt wurden, nicht geändert.
Vorhandene API-Schlüssel, die nicht von Firebase automatisch bereitgestellt wurden, wurden nicht
geändert.
Wie finde ich heraus, welchen API-Schlüssel ich habe?
mit meiner Firebase-App verknüpft ist?
Mit den folgenden Optionen können Sie feststellen, welcher API-Schlüssel
die mit Ihrer Firebase-App verknüpft sind:
Firebase-Konsole
settings aufrufen
Projekteinstellungen
und scrollen Sie 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 GoogleService-Info.plist herunter und suchen Sie nach dem 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 nach dem Feld apiKey.
Firebase CLI
Rufen Sie die Firebase-Konfigurationsdatei bzw. das Firebase-Objekt für die entsprechende App ab, indem Sie den folgenden Befehl ausführen:
folgenden Befehl:
firebase apps:sdkconfig PLATFORMFIREBASE_APP_ID
PLATFORM (einer der folgenden): IOS | ANDROID | WEB
FIREBASE_APP_ID: die von Firebase zugewiesene eindeutige Kennung für
Ihre Firebase-App (App-ID ermitteln)
Suchen Sie in der gedruckten Firebase-Konfiguration der App den zugehörigen API-Schlüssel:
Apple: Suchen Sie nach dem Feld API_KEY.
Android: Suchen Sie die Konfiguration für die gewünschte App (Paketname) und 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.
keyString ist derselbe Wert, der sich in der
Konfigurationsartefakt
(Apfel |
Android |
Web).
Darf ich
In meiner Firebase-Konfiguration sind zwei API-Schlüssel für dieselbe Firebase-App aufgeführt.
Datei/Objekt?
Firebase-Apple-Apps: Jede App hat eine eigene Konfigurationsdatei und kann nur einen API-Schlüssel enthalten.
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 verhindern, dass sie mit dem
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 können jedoch
Sie müssen für Ihre App einen anderen Mechanismus bereitstellen, damit sie auf einen API-Schlüssel zugreifen kann
(z. B. über eine Umgebungsvariable). Andernfalls werden alle Aufrufe von Firebase-Diensten
schlägt fehl.
Kann ich manuell
Firebase-Konfigurationsdatei/-Objekt 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, werden API-Aufrufe von dieser App
schlägt fehl. Möglicherweise erhalten Sie Berichte, E-Mails oder Fehlermeldungen,
einen ungültigen API-Schlüssel hat.
Das Löschen eines API-Schlüssels ist endgültig und kann nicht rückgängig gemacht werden.
Welche
APIs sind in den „API-Einschränkungen“ erforderlich Zulassungsliste für einen Firebase API-Schlüssel?
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. Beachten Sie, dass nur sehr wenige Firebase-bezogene APIs diese
Anforderung. Die meisten Firebase-bezogenen APIs, die in Ihrem Projekt aktiviert sind, müssen nicht
für die „API-Einschränkungen“ des Schlüssels auf die Zulassungsliste setzen.
* Nur erforderlich, wenn Sie den Firebase API-Schlüssel mit einem Drittanbieter
Tools oder direkten REST-Zugriff auf den Firebase-Dienst bzw. das Firebase-Produkt haben.
** Erforderlich für ältere Versionen des SDK des Produkts. Wenn Sie
Version des SDK installiert haben, muss die API nicht auf der
auf die Zulassungsliste setzen.
Fehlerbehebung
Wie kann ich
Fehler API_KEY_SERVICE_BLOCKED oder Forbidden 403 beheben,
Anfragen an diese API blockiert?
Befolgen Sie die Anleitung in diesen häufig gestellten Fragen, wenn Sie ein API_KEY_SERVICE_BLOCKED erhalten.
oder einen Fehler, der so aussieht:
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.
Der API-Schlüssel, mit dem Ihre App die API aufruft, hat wahrscheinlich
„API-Einschränkungen“
angewendet und die Zulassungsliste des Schlüssels enthält diese API nicht.
Wenn dieser Fehler angezeigt wird, wenn Sie versuchen, einen Nicht-Firebase-Dienst zu verwenden, dann:
empfehlen wir dringend, speziell für diesen Dienst einen neuen API-Schlüssel zu erstellen und
der API erstellen. Firebase API-Schlüssel sollten nur für Firebase-Dienste und -Produkte verwendet werden.
Weitere Informationen zum Erstellen
separate, eingeschränkte API-Schlüssel für bestimmte API-Typen.
Wie kann ich
um diesen Fehler zu beheben? „Die Mess-ID dieser Firebase-App konnte nicht aus dem
Server.“
Der von Ihrer Webanwendung verwendete API-Schlüssel hat wahrscheinlich
„API-Einschränkungen“
angewendet wird. Prüfen Sie in diesem Fall, ob die Firebase Management API in der Liste der zulässigen APIs enthalten ist.
Ich habe eine E-Mail oder einen Fehler erhalten,
Mein API-Schlüssel ist ungültig. Was ist passiert und wie kann ich dieses Problem beheben?
Hier sind einige der häufigsten Ursachen für ungültige API-Schlüssel:
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.