Dowiedz się więcej o używaniu kluczy interfejsu API dla Firebase i zarządzaniu nimi

Klucz interfejsu API to unikalny ciąg znaków, który służy do kierowania żądań do projektu Firebase podczas interakcji z Firebase i usługami Google. Na tej stronie znajdziesz podstawowe informacje o kluczach API oraz sprawdzone metody ich używania i zarządzania nimi w przypadku aplikacji Firebase.

Ogólne informacje o kluczach interfejsu API i Firebase

Klucze API dla Firebase różnią się od typowych kluczy API

W odróżnieniu od typowego sposobu używania kluczy interfejsu API klucze interfejsu API usług Firebase nie służą do kontrolowania dostępu do zasobów backendowych. Można to zrobić tylko za pomocą interfejsów Firebase Security Rules (aby kontrolować, którzy użytkownicy mają dostęp do zasobów) i Firebase App Check (aby kontrolować, które aplikacje mają dostęp do zasobów).

Zazwyczaj musisz skrupulatnie chronić klucze interfejsu API (np. za pomocą usługi sejfu lub ustawiając klucze jako zmienne środowiskowe). Klucze interfejsu API usług Firebase możesz jednak uwzględnić w kodzie lub przesłanych plikach konfiguracji.

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

Tworzę klucze interfejsu API

Projekt Firebase może mieć wiele kluczy interfejsu API, ale każdy klucz może być powiązany tylko z jednym projektem Firebase.

klucze API utworzone automatycznie przez Firebase dla Twoich aplikacji Firebase,

Firebase automatycznie tworzy klucze API dla Twojego projektu, gdy wykonasz jedną z tych czynności:

  • Utwórz projekt Firebase > Browser key utworzony automatycznie
  • Utwórz aplikację Firebase Apple > iOS key utworzony automatycznie
  • Utwórz aplikację Firebase na Androida > Android key utworzony automatycznie
.

Możesz też utworzyć własne klucze interfejsu API w konsola Google Cloud, np. do programowania lub debugowania. Więcej informacji o , kiedy możemy ją zalecić w dalszej części tej strony.

Znajdowanie kluczy interfejsu API

Wszystkie klucze interfejsu API projektu możesz wyświetlać i zarządzać nimi w Interfejsy API Usługi > Dane logowania w konsoli Google Cloud.

Możesz też sprawdzić, który klucz interfejsu API jest automatycznie dopasowywany do aplikacji Firebase. Według wszystkie aplikacje Firebase działające na tej samej platformie (Apple – Android lub internet) będą używać tego samego klucza interfejsu API.

  • Aplikacje Apple Apple – znajdź w Firebase automatycznie dopasowany klucz interfejsu API .config, GoogleService-Info.plist, w API_KEY.

  • Aplikacje Firebase na Androida – znajdź automatycznie dopasowany klucz interfejsu API w pliku konfiguracyjnego Firebase google-services.json w current_key.

  • Aplikacje internetowe Firebase – klucz API dopasowany automatycznie znajdziesz w obiekcie konfiguracji Firebase w polu apiKey.

Używanie klucza API

Klucze API służą do identyfikowania Twojego projektu Firebase podczas interakcji z usługami Firebase/Google. Służą one do powiązania żądań do interfejsu API w ramach Twojego projektu na potrzeby limitów i płatności. Są one też przydatne do uzyskiwania dostępu do danych publicznych.

Możesz na przykład bezpośrednio użyć klucza interfejsu API, przesyłając jego wartość do metody REST wywołanie interfejsu API jako parametr zapytania, Ten przykład pokazuje, jak możesz wysłać żądanie do Interfejs Dynamic Links link Shortener API:

POST https://firebasedynamiclinks.googleapis.com/v1/shortLinks?key=API_KEY

Gdy aplikacja wywołuje interfejs Firebase API, który wymaga klucza API przekazanego przez klienta mobilnego lub internetowego, automatycznie wyszukuje klucz API w pliku lub obiekcie konfiguracji Firebase. Możesz jednak udostępnić klucze API swojej aplikacji za pomocą innego mechanizmu, np. zmiennych środowiska.

Przejrzyj klucze interfejsu API i zastosuj do nich odpowiednie ograniczenia (zalecane)

Chociaż nie musisz traktować klucza API usług Firebase jako tajemnicy, musisz sprawdzić i zastosować ograniczenia opisane w tej sekcji.

Sprawdź interfejsy API automatycznie dodane do listy dozwolonych kluczy interfejsu Firebase API

Gdy Firebase utworzy klucz interfejsu API w projekcie, automatycznie dodamy do niego klucz „Ograniczenia interfejsów API” do danego klucza. Interfejsy API dodane do tej listy dozwolonych to interfejsy API związane z Firebase, które wymagają od klienta podania klucza 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 API.

Firebase dodaje niezbędne interfejsy API do wszystkich usług Firebase, więc lista dozwolonych kluczy interfejsu API może zawierać interfejsy API usług, których nie używasz. Możesz usunąć interfejsy API z listy dozwolonych, ale musisz upewnić się, że nie usuń interfejsy API wymagane przez Firebase i usługi Firebase, których używasz (zobacz lista interfejsów API związanych z Firebase które muszą znajdować się na liście dozwolonych w przypadku poszczególnych usług / produktów). 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 na podstawie hasła, a ktoś uzyska dostęp do Twojego klucza API, nie będzie mógł uzyskać dostępu do żadnej bazy danych projektu Firebase ani do danych Cloud Storage dopóty, dopóki te dane są chronione przez Firebase Security Rules. Może jednak użyć Twojego klucza interfejsu API, aby uzyskać dostęp punktów końcowych uwierzytelniania Firebase i wysyłać żądania uwierzytelniania do w Twoim projekcie.

Aby zmniejszyć ryzyko, że ktoś niewłaściwie użyje klucza interfejsu API do przeprowadzenia ataku siłowego, możesz zawęzić domyślny limit punktów końcowych identitytoolkit.googleapis.com, aby odzwierciedlać normalne oczekiwania dotyczące ruchu w aplikacji. Pamiętaj, że jeśli zawęzisz ten limit, a Twoja aplikacja nagle zyska użytkowników, możesz zacząć otrzymywać błędy logowania, dopóki nie zwiększysz limitu. Limity interfejsu API projektu możesz zmienić w konsoli Google Cloud.

Używanie osobnych, ograniczonych kluczy interfejsu API w przypadku każdej usługi spoza Firebase

Chociaż kluczy interfejsu API używanych w usługach Firebase nie trzeba traktować jako informacji poufnych, należy zachować szczególną ostrożność w przypadku kluczy interfejsu API używanych w innych interfejsach API Google Cloud.

Jeśli używasz interfejsu API Google Cloud (na dowolnej platformie), który nie jest przeznaczony dla Firebase usługi / produktu, zdecydowanie zalecamy utworzenie osobnych, ograniczonych kluczy interfejsu API do użytku z tymi interfejsami API. Jest to szczególnie ważne, jeśli interfejs API jest przeznaczony do płatna usługa Google Cloud.

Jeśli na przykład korzystasz z Firebase ML i interfejsów Cloud Vision API w iOS, utwórz osobne klucze API, których używasz tylko dostępu do Cloud Vision API.

Dzięki korzystaniu z osobnych, ograniczonych kluczy API w przypadku interfejsów API innych niż Firebase możesz w razie potrzeby zastąpić klucze lub je zamienić i dodać do nich dodatkowe ograniczenia bez zakłócania korzystania z usług Firebase.

Użyj kluczy interfejsu API odpowiednich dla środowiska (zalecane)

Jeśli skonfigurujesz różne projekty Firebase na różne środowiska, np. testowe i produkcyjne, ważne jest, aby każde wystąpienie aplikacji współpracowało z odpowiednim projektem Firebase. Na przykład instancja aplikacji na etapie testów nie powinna nigdy komunikować się z produkcyjnym projektem Firebase. Oznacza to również, że Twoja aplikacja przejściowa musi używać kluczy interfejsu API powiązanych z przejściowym projektem Firebase.

Aby ograniczyć problemy z przekazywaniem zmian kodu z rozwoju do środowiska pośredniego, a potem do produkcji, zamiast umieszczać klucze interfejsu API w samym kodzie, ustaw je jako zmienne środowiskowe lub dodaj je do pliku konfiguracyjnego.

Pamiętaj, że jeśli używasz Firebase Local Emulator Suite do programowania razem za pomocą Firebase ML, musisz utworzyć klucz interfejsu API przeznaczony tylko do debugowania i używać go. Instrukcje tworzenia tego typu klucza znajdziesz w dokumentacji Firebase ML.

Najczęstsze pytania i rozwiązywanie problemów

Najczęstsze pytania

Rozwiązywanie problemów