Więcej informacji o kluczach interfejsów API w Firebase i zarządzanie nimi
Zadbaj o dobrą organizację dzięki kolekcji
Zapisuj i kategoryzuj treści zgodnie ze swoimi preferencjami.
Klucz interfejsu API to unikalny ciąg znaków, który służy do kierowania żądań do projektu Firebase podczas interakcji z usługami Firebase i Google. Na tej stronie znajdziesz podstawowe informacje o kluczach interfejsu API oraz sprawdzone metody korzystania z nich i zarządzania nimi w aplikacjach w Firebase.
Jeśli otrzymasz od Google Cloud e-maila o „publicznie dostępnym kluczu interfejsu API Google dla projektu Google Cloud”, a klucz interfejsu API wymieniony w e-mailu to Twój klucz interfejsu API Firebase, upewnij się, że klucz interfejsu API spełnia poniższe wymagania, aby można go było bezpiecznie umieścić w kodzie lub plikach konfiguracji. Możesz to sprawdzić na stronie Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.
Jest to klucz interfejsu API, którego używasz w aplikacji w Firebase i tylko w usługach Firebase. Te klawisze są zwykle oznaczone jako Browser key (auto created by Firebase), Android key (auto created by Firebase) lub iOS key (auto created by Firebase).
Nie ma żadnych innych interfejsów API na liście dozwolonych „Ograniczenia interfejsów API”. W szczególności lista nie powinna zawierać Generative Language API.
Upewnij się też, że używasz Firebase Security Rules i App Check zgodnie z zaleceniami dotyczącymi usług Firebase, z których korzystasz.
W dalszej części tej strony znajdziesz szczegółowe informacje o kluczach interfejsu API Firebase oraz listę najczęstszych pytań na ich temat.
Ogólne informacje o kluczach interfejsu API i Firebase
Klucze interfejsu API Firebase różnią się od typowych kluczy interfejsu API
W przeciwieństwie do typowego zastosowania kluczy interfejsu API klucze interfejsu API usług Firebase nie służą do kontrolowania dostępu do zasobów backendu. Można to zrobić tylko za pomocą Firebase Security Rules (do kontrolowania, którzy użytkownicy mają dostęp do zasobów) i Firebase App Check (do kontrolowania, które aplikacje mają dostęp do zasobów).
Zwykle klucze interfejsu API trzeba starannie chronić (np. za pomocą usługi skarbca lub ustawiając klucze jako zmienne środowiskowe). Jednak klucze interfejsu API do usług Firebase można umieszczać w kodzie lub w plikach konfiguracji.
Projekt w Firebase może mieć wiele kluczy interfejsu API, ale każdy klucz interfejsu API może być powiązany tylko z jednym projektem w Firebase.
Firebase automatycznie tworzy klucze interfejsu API dla projektu, gdy wykonasz dowolną z tych czynności:
Utwórz projekt w Firebase > Browser key utworzony automatycznie
Utwórz aplikację Firebase na urządzenia Apple > iOS key utworzono automatycznie
Utwórz aplikację Firebase na Androida > Android key utworzono automatycznie
Możesz też utworzyć własne klucze interfejsu API w konsoli Google Cloud, na przykład na potrzeby programowania lub debugowania. Więcej informacji o tym, kiedy może to być zalecane, znajdziesz dalej na tej stronie.
Znajdowanie kluczy interfejsu API
Wszystkie klucze interfejsu API projektu możesz wyświetlać i zarządzać nimi na stronie Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.
Aplikacje Firebase na urządzenia Apple – znajdź automatycznie dopasowany klucz interfejsu API w pliku konfiguracji Firebase GoogleService-Info.plist w polu API_KEY.
Aplikacje Firebase na Androida – znajdź automatycznie dopasowany klucz interfejsu API w pliku konfiguracji Firebase google-services.json w polu current_key.
Aplikacje internetowe Firebase – znajdź automatycznie dopasowany klucz interfejsu API w obiekcie konfiguracji Firebase w polu apiKey.
Używanie klucza interfejsu API
Klucze interfejsu API Firebase służą do identyfikowania projektu w Firebase podczas interakcji z usługami Firebase lub Google. Służą one do powiązania żądań do interfejsu API z projektem na potrzeby limitów i rozliczeń. Są też przydatne do uzyskiwania dostępu do danych publicznych.
W przypadku większości deweloperów i zastosowań nie będziesz bezpośrednio korzystać z tych kluczy interfejsu API. Zamiast tego, gdy aplikacja wywołuje interfejs Firebase API, który wymaga klucza interfejsu API dostarczonego przez klienta mobilnego lub internetowego, automatycznie wyszukuje klucz interfejsu API w konfiguracji Firebase aplikacji. Ta konfiguracja została dodana do bazy kodu aplikacji, gdy połączono ją z Firebase.
Pamiętaj, że klucz interfejsu API aplikacji możesz podać w aplikacji za pomocą innego mechanizmu, np. opcji Firebase lub zmiennych środowiskowych.
W przypadku niektórych interfejsów API typu REST dla usług Firebase może być konieczne jawne przekazanie wartości klucza interfejsu API do wywołania jako parametru zapytania.
Ten przykład pokazuje, jak wysłać żądanie za pomocą interfejsu API Firebase Authentication:
Sprawdź i zastosuj odpowiednie ograniczenia do kluczy interfejsu API
W przypadku wszystkich kluczy interfejsu API w projekcie musisz się upewnić, że mają one odpowiednie ograniczenia i limity, jak opisano w tej sekcji.
Sprawdzanie interfejsów API automatycznie dodanych do listy dozwolonych dla kluczy interfejsu API Firebase
Gdy Firebase tworzy klucz interfejsu API w projekcie, automatycznie dodajemy do niego „ograniczenia interfejsu API”. Interfejsy API dodane do tej listy dozwolonych to interfejsy API powiązane z Firebase, które wymagają od klienta podania klucza interfejsu API wraz z wywołaniem. Pamiętaj, że większość interfejsów API wymaganych do korzystania z usług Firebase nie musi znajdować się na liście dozwolonych kluczy interfejsów API.
Firebase dodaje niezbędne interfejsy API dla wszystkich usług Firebase, dlatego lista dozwolonych klucza interfejsu API może zawierać interfejsy API usług, których nie używasz.
Możesz usunąć interfejsy API z listy dozwolonych, ale musisz bardzo uważać, aby nie usunąć interfejsów API wymaganych przez Firebase i usługi Firebase, których używasz (zobacz listę interfejsów API związanych z Firebase, które muszą znajdować się na liście dozwolonych w przypadku każdej usługi lub produktu). W przeciwnym razie podczas wywoływania usług Firebase będą występować błędy.
Zmniejsz limit, jeśli używasz Authentication opartego na haśle
Jeśli używasz Firebase Authentication opartego na haśle i ktoś uzyska dostęp do Twojego klucza interfejsu API, nie będzie mógł uzyskać dostępu do żadnej bazy danych projektu w Firebase ani danych Cloud Storage, o ile te dane są chronione przez Firebase Security Rules. Mogą jednak użyć Twojego klucza interfejsu API, aby uzyskać dostęp do punktów końcowych uwierzytelniania Firebase i wysyłać żądania uwierzytelniania do Twojego projektu.
Aby zmniejszyć ryzyko, że ktoś użyje klucza interfejsu API do przeprowadzenia ataku brute-force, możesz zmniejszyć domyślny limit punktów końcowych identitytoolkit.googleapis.com, aby odzwierciedlał normalny ruch w aplikacji. Pamiętaj, że jeśli zmniejszysz ten limit, a aplikacja nagle zyska użytkowników, mogą wystąpić błędy logowania, dopóki nie zwiększysz limitu.
Limity interfejsu API projektu możesz zmienić w konsoli Google Cloud.
Używaj oddzielnych kluczy interfejsu API z ograniczeniami w przypadku usług innych niż Firebase.
Chociaż klucze interfejsu API używane w usługach Firebase nie muszą być traktowane jako tajne, należy zachować dodatkowe środki ostrożności w przypadku kluczy interfejsu API używanych z innymi interfejsami API Google Cloud.
Jeśli używasz interfejsu API Google Cloud (na dowolnej platformie), który nie jest przeznaczony dla usługi lub produktu Firebase, zdecydowanie zalecamy utworzenie oddzielnych, ograniczonych kluczy interfejsu API do użycia z tymi interfejsami API. Jest to szczególnie ważne, jeśli interfejs API dotyczy płatnej usługi Google Cloud. W szczególności nigdy nie dodawaj interfejsu Gemini Developer API do listy dozwolonych dla publicznie dostępnego klucza interfejsu API ani klucza używanego w innych usługach.
Używając oddzielnych, ograniczonych kluczy interfejsu API dla interfejsów API innych niż Firebase, możesz w razie potrzeby rotować lub zastępować klucze oraz dodawać dodatkowe ograniczenia do kluczy interfejsu API bez zakłócania korzystania z usług Firebase.
Wyświetlanie instrukcji tworzenia kluczy interfejsu API
Te instrukcje opisują, jak utworzyć osobny, ograniczony klucz interfejsu API dla fałszywego interfejsu API o nazwie Super Service API.
Krok 1. Skonfiguruj istniejące klucze interfejsu API, aby uniemożliwić dostęp do Super Service API
W konsoli Google Cloud otwórz stronę Interfejsy API i usługi > Dane logowania.
Jeśli pojawi się taka prośba, wybierz projekt.
Otwórz widok edycji każdego klucza interfejsu API na liście.
W sekcji Ograniczenia interfejsów API wybierz Ogranicz klucz, a następnie dodaj do listy wszystkie interfejsy API, do których klucz interfejsu API ma mieć dostęp. Pamiętaj, aby nie uwzględniać interfejsu API, dla którego tworzysz osobny klucz interfejsu API (w tym przykładzie Super Service API).
Gdy konfigurujesz ograniczenia interfejsu API dla klucza interfejsu API, wyraźnie deklarujesz interfejsy API, do których klucz ma dostęp. **Domyślnie, gdy w sekcji Ograniczenia interfejsów API jest wybrana opcja Nie ograniczaj klucza, klucz interfejsu API może być używany do uzyskiwania dostępu do dowolnego interfejsu API włączonego w projekcie.**
Twoje dotychczasowe klucze interfejsu API nie będą już umożliwiać dostępu do usługi Super Service API, ale każdy klucz będzie nadal działać w przypadku wszystkich interfejsów API dodanych do listy ograniczeń interfejsu API.
Krok 2. Utwórz nowy klucz interfejsu API i użyj go, aby uzyskać dostęp do Super Service API
Wróć na stronę Interfejsy API i usługi > Dane logowania.
Upewnij się, że projekt w Firebase jest nadal wybrany.
Kliknij Utwórz dane logowania > Klucz interfejsu API. Zapisz nowy klucz interfejsu API, a następnie kliknij Ogranicz klucz.
W sekcji Ograniczenia interfejsów API wybierz Ogranicz klucz, a następnie dodaj do listy tylkoSuper Service API.
Ten nowy klucz interfejsu API przyznaje dostęp tylko do Super Service API.
Skonfiguruj aplikację i usługi tak, aby używały nowego klucza interfejsu API.
Używanie kluczy interfejsu API dla konkretnych środowisk
Jeśli skonfigurujesz różne projekty w Firebase dla różnych środowisk, np. testowego i produkcyjnego, ważne jest, aby każda instancja aplikacji wchodziła w interakcję z odpowiednim projektem w Firebase. Na przykład instancja aplikacji w środowisku testowym nie powinna nigdy komunikować się z projektem w Firebase w środowisku produkcyjnym. Oznacza to również, że aplikacja przejściowa musi używać kluczy interfejsu API powiązanych z projektem w Firebase na etapie przejściowym.
Aby uniknąć problemów z przenoszeniem zmian w kodzie ze środowiska programistycznego do środowiska przejściowego i produkcyjnego, zamiast umieszczać klucze interfejsu API w samym kodzie, ustaw je jako zmienne środowiskowe lub umieść w pliku konfiguracji.
Najczęstsze pytania i rozwiązywanie problemów
Najczęstsze pytania
Czy klucze interfejsu API do usług Firebase są domyślnie ograniczone?
Tak. Domyślnie wszystkie klucze interfejsu API, które Firebase automatycznie udostępnia do użytku z interfejsami API powiązanymi z Firebase, mają automatycznie stosowane „Ograniczenia interfejsu API”. Zobacz listę interfejsów API związanych z Firebase, które znajdują się na tej liście dozwolonych.
Interfejsy API dodane do tej listy dozwolonych to interfejsy API wywoływane przez usługi Firebase z kodu klienta, które wymagają kluczy interfejsu API do identyfikacji projektu lub aplikacji Firebase. Pamiętaj, że większość interfejsów API wymaganych do korzystania z usług Firebase nie musi znajdować się na liście dozwolonych kluczy interfejsu API.
Firebase dodaje niezbędne interfejsy API dla wszystkich usług Firebase, dlatego lista dozwolonych klucza interfejsu API może zawierać interfejsy API usług, których nie używasz. Możesz usunąć interfejsy API z listy dozwolonych, ale uważaj, aby nie usunąć interfejsów API wymaganych przez Firebase i usługi Firebase, z których korzystasz (zobacz listę interfejsów API związanych z Firebase, które muszą znajdować się na liście dozwolonych w przypadku każdej usługi lub produktu). W przeciwnym razie podczas wywoływania usług Firebase będą występować błędy.
Wszystkie klucze interfejsu API i ich „Ograniczenia interfejsu API” możesz wyświetlić na stronie Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.
Pamiętaj o tych kwestiach dotyczących sposobu, w jaki Firebase stosuje te „ograniczenia interfejsu API”:
W maju 2024 r. wszystkie istniejące i nieograniczone klucze interfejsu API, które Firebase wcześniej automatycznie udostępniał, zostaną ograniczone do listy interfejsów API związanych z Firebaseoraz wszystkich obecnie włączonych interfejsów API projektu.
Żadne istniejące i już ograniczone klucze interfejsu API, które zostały wcześniej automatycznie udostępnione przez Firebase, nie zostały zmienione.
Żadne istniejące klucze interfejsu API, które nie zostały automatycznie udostępnione przez Firebase, nie zostały zmienione.
Jak mogę sprawdzić, który klucz interfejsu API jest powiązany z moją aplikacją w Firebase?
Aby określić, który klucz interfejsu API jest powiązany z aplikacją w Firebase, możesz użyć dowolnej z tych opcji:
Czy w pliku lub obiekcie konfiguracji Firebase mogę mieć 2 klucze interfejsu API wymienione dla tej samej aplikacji w Firebase?
Aplikacje Firebase na urządzenia Apple – każda aplikacja ma własny plik konfiguracji i może mieć tylko 1 klucz interfejsu API.
Aplikacje Firebase na Androida – wszystkie aplikacje na Androida w projekcie w Firebase są wymienione w tym samym pliku konfiguracyjnym, a każda aplikacja może mieć tylko 1 klucz interfejsu API. Każda aplikacja w tym pliku konfiguracji może mieć jednak inny klucz.
Aplikacje internetowe Firebase – każda aplikacja ma własny obiekt konfiguracji i może mieć tylko 1 klucz interfejsu API.
Możesz jednak używać wielu kluczy interfejsu API w jednej aplikacji. Musisz zapewnić mechanizm, który umożliwi aplikacji dostęp do tych innych kluczy interfejsu API, np. za pomocą zmiennej środowiskowej. Mechanizm dostępu do innych kluczy interfejsu API nie może zależeć od tego, czy te klucze są wymienione w pliku lub obiekcie konfiguracji Firebase.
Skąd Firebase wie, który klucz interfejsu API dopasować do aplikacji (np. w pliku/obiekcie konfiguracji Firebase)?
Jeśli Firebase nie znajdzie żadnych pasujących kluczy z ograniczeniami, w pliku lub obiekcie konfiguracji wyświetli klucz iOS key w przypadku aplikacji na urządzenia Apple, klucz Android key w przypadku aplikacji na Androida i klucz Browser key w przypadku aplikacji internetowych (zakładając, że te klucze istnieją i nie mają „ograniczeń aplikacji”, które uniemożliwiają ich dopasowanie do danej aplikacji).
Czy mogę ręcznie usunąć klucz interfejsu API i pole z pliku/obiektu konfiguracji Firebase?
Tak, możesz ręcznie usunąć klucz interfejsu API z pliku lub obiektu konfiguracji. Musisz jednak udostępnić inny mechanizm, który umożliwi aplikacji dostęp do klucza interfejsu API (np. za pomocą zmiennej środowiskowej). W przeciwnym razie wywołania usług Firebase będą kończyć się niepowodzeniem.
Czy mogę ręcznie edytować plik/obiekt konfiguracji Firebase, używając różnych kluczy interfejsu API?
Tak, możesz ręcznie edytować plik lub obiekt konfiguracji, aby powiązać z aplikacją inny klucz interfejsu API.
Czy mogę przenieść klucz interfejsu API z jednego projektu w Firebase do innego?
Nie, klucz interfejsu API identyfikuje tylko konkretny projekt i nie można go przenieść do innego projektu.
Co się stanie, jeśli usunę klucz interfejsu API wymieniony w konsoli Google Cloud?
Jeśli usuniesz klucz interfejsu API, który jest używany przez aplikację, wywołania interfejsu API z tej aplikacji nie będą działać. Możesz otrzymywać raporty, e-maile lub błędy informujące o próbie użycia nieprawidłowego klucza interfejsu API.
Usunięcie klucza interfejsu API jest trwałe i nie można go cofnąć.
Które interfejsy API są wymagane na liście dozwolonych „Ograniczenia interfejsów API” w przypadku klucza interfejsu API Firebase?
W przypadku klucza interfejsu API Firebase jedynymi interfejsami API, które muszą znajdować się na liście dozwolonych „Ograniczenia interfejsów API”, są te, które wymagają od klienta podania klucza interfejsu API wraz z wywołaniem. Pamiętaj, że bardzo niewiele interfejsów API związanych z Firebase ma to wymaganie. Większość interfejsów API związanych z Firebase, które są włączone w Twoim projekcie, nie musi znajdować się na liście dozwolonych „Ograniczenia interfejsów API” klucza.
W tabeli poniżej znajdziesz informacje o tym, które interfejsy API związane z Firebase muszą być uwzględnione na liście dozwolonych „Ograniczenia interfejsu API” dla klucza interfejsu API Firebase. Pamiętaj, że klucze interfejsu API Firebase powinny być używane tylko w usługach Firebase. Dowiedz się więcej o tworzeniu oddzielnych, ograniczonych kluczy interfejsu API dla określonych typów interfejsów API.
Klucze interfejsu API projektu możesz wyświetlać i zarządzać nimi na stronie Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.
* Wymagane tylko wtedy, gdy używasz klucza interfejsu API Firebase z narzędziami innych firm lub bezpośrednim dostępem REST do usługi/produktu Firebase.
** Wymagane w przypadku wcześniejszych wersji pakietu SDK usługi. Jeśli używasz najnowszej wersji pakietu SDK, interfejs API nie musi znajdować się na liście dozwolonych klucza.
Rozwiązywanie problemów
Jak rozwiązać problem z błędem API_KEY_SERVICE_BLOCKED lub błędem 403 (Forbidden) informującym, że żądania do tego interfejsu API są blokowane?
Postępuj zgodnie ze wskazówkami w tym FAQ, jeśli widzisz błąd API_KEY_SERVICE_BLOCKED lub błąd podobny do tego:
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.
Klucz interfejsu API używany przez aplikację do wywoływania interfejsu API prawdopodobnie ma zastosowane „Ograniczenia interfejsu API”, a lista dozwolonych klucza nie zawiera tego interfejsu API.
Jeśli ten błąd pojawia się podczas próby użycia usługi innej niż Firebase, zdecydowanie zalecamy utworzenie nowego klucza interfejsu API specjalnie dla tej usługi i interfejsu API. Klucze interfejsu Firebase API powinny być używane tylko w przypadku usług Firebase.
Dowiedz się więcej o tworzeniu oddzielnych kluczy interfejsu API z ograniczeniami dla określonych typów interfejsów API.
Jak rozwiązać ten problem? „Nie udało się pobrać z serwera identyfikatora pomiaru tej aplikacji w Firebase”.
Klucz interfejsu API używany przez aplikację internetową prawdopodobnie ma zastosowane ograniczenia interfejsu API. Jeśli tak jest, sprawdź, czy interfejs Firebase Management API znajduje się na liście dozwolonych interfejsów API.
Otrzymałem(-am) e-maila lub błąd z informacją, że mój klucz interfejsu API jest nieprawidłowy. Co się stało i jak rozwiązać ten problem?
Oto kilka najczęstszych przyczyn nieprawidłowości kluczy interfejsu API:
Do klucza interfejsu API zastosowano „Ograniczenia klucza interfejsu API”, które uniemożliwiają dopasowanie go do aplikacji próbującej go użyć („Ograniczenia aplikacji”) lub uniemożliwiają użycie go w wywoływanym interfejsie API („Ograniczenia interfejsu API”).
Klucz interfejsu API został usunięty z projektu w konsoli Google Cloud.
Klucz interfejsu API nie został utworzony dla identyfikatora projektu podanego w pliku/obiekcie konfiguracji Firebase aplikacji.
[[["Łatwo zrozumieć","easyToUnderstand","thumb-up"],["Rozwiązało to mój problem","solvedMyProblem","thumb-up"],["Inne","otherUp","thumb-up"]],[["Brak potrzebnych mi informacji","missingTheInformationINeed","thumb-down"],["Zbyt skomplikowane / zbyt wiele czynności do wykonania","tooComplicatedTooManySteps","thumb-down"],["Nieaktualne treści","outOfDate","thumb-down"],["Problem z tłumaczeniem","translationIssue","thumb-down"],["Problem z przykładami/kodem","samplesCodeIssue","thumb-down"],["Inne","otherDown","thumb-down"]],["Ostatnia aktualizacja: 2026-11-10 UTC."],[],[]]