Więcej informacji o kluczach interfejsów API w Firebase i zarządzanie nimi

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.

Upewnij się też, że używasz Firebase Security Rules i App Check zgodnie z zaleceniami dotyczącymi usług Firebase, z których korzystasz.

Szczegółowe informacje o kluczach interfejsu API Firebase oraz listę najczęstszych pytań znajdziesz w artykule Używanie kluczy interfejsu API Firebase i zarządzanie nimi.


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.

Chociaż klucze interfejsu API do usług Firebase można bezpiecznie umieszczać w kodzie, należy sprawdzić i zastosować odpowiednie ograniczenia i limity.

Tworzenie kluczy interfejsu API

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.

Klucze interfejsu API utworzone automatycznie przez Firebase dla aplikacji 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.

Możesz też sprawdzić, który klucz interfejsu API jest automatycznie dopasowywany do aplikacji Firebase, w tych miejscach: Domyślnie wszystkie aplikacje Firebase w projekcie na tę samą platformę (Apple, Android lub internet) będą używać tego samego klucza interfejsu API.

  • 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:

https://identitytoolkit.googleapis.com/v1/accounts:signInWithCustomToken?key=API_KEY

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.

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

Rozwiązywanie problemów