Ćwiczenie z programowania dotyczące sprawdzania aplikacji w przeglądarce

1. Wprowadzenie

Last Updated: 2023-02-23

Jak zapobiegać nieautoryzowanemu dostępowi do zasobów Firebase?

Możesz użyć Sprawdzania aplikacji Firebase, aby uniemożliwić nieautoryzowanym klientom dostęp do zasobów backendu. Wymagaj, aby żądania przychodzące zawierały potwierdzenie, że pochodzą z Twojej oryginalnej aplikacji, i blokuj ruch, który nie ma odpowiedniego potwierdzenia. Sprawdzanie aplikacji Firebase korzysta z dostawców atestów na poszczególnych platformach, aby weryfikować autentyczność klienta. W przypadku aplikacji internetowych Sprawdzanie aplikacji obsługuje reCAPTCHA v3 i reCAPTCHA Enterprise jako dostawców atestów.

Usługa App Check może służyć do ochrony żądań wysyłanych do Cloud Firestore, Bazy danych czasu rzeczywistego, Cloud Functions, Uwierzytelniania Firebase z Identity Platform oraz do backendów hostowanych samodzielnie.

Co utworzysz

W tym laboratorium kodowania zabezpieczysz aplikację do czatu, najpierw dodając, a potem wymuszając weryfikację aplikacji.

Aplikacja do obsługi czatu, którą utworzysz.

Czego się nauczysz

  • Monitorowanie zaplecza pod kątem nieautoryzowanego dostępu
  • Jak dodać egzekwowanie w Firestore i Cloud Storage
  • Jak uruchomić aplikację z tokenem debugowania na potrzeby lokalnego programowania

Czego potrzebujesz

  • Wybrane IDE lub edytor tekstu
  • Menedżer pakietów npm, który zwykle jest dostarczany z Node.js
  • Wiersz poleceń Firebase zainstalowany i skonfigurowany do pracy z Twoim kontem.
  • terminal/konsola,
  • wybraną przeglądarkę, np. Chrome;
  • przykładowy kod z codelabu (instrukcje pobierania kodu znajdziesz w następnym kroku codelabu);

2. Pobieranie przykładowego kodu

Sklonuj repozytorium GitHub z poziomu wiersza poleceń:

git clone https://github.com/firebase/codelab-friendlychat-web

Jeśli nie masz zainstalowanego Gita, możesz pobrać repozytorium jako plik ZIP.

Importowanie aplikacji startowej

W IDE otwórz lub zaimportuj katalog 📁 appcheck-start ze sklonowanego repozytorium. Katalog 📁appcheck-start zawiera kod początkowy do ćwiczeń z programowania, który będzie w pełni funkcjonalną aplikacją internetową do czatowania. Katalog 📁appcheck będzie zawierać gotowy kod do ćwiczeń z programowania.

3. Tworzenie i konfigurowanie projektu Firebase

Tworzenie projektu Firebase

  1. Zaloguj się w konsoli Firebase, korzystając ze swojego konta Google.
  2. Kliknij przycisk, aby utworzyć nowy projekt, a potem wpisz jego nazwę (np. FriendlyChat).
  3. Kliknij Dalej.
  4. Po wyświetleniu monitu przeczytaj i zaakceptuj warunki usługi Firebase, a potem kliknij Dalej.
  5. (Opcjonalnie) Włącz w konsoli Firebase pomoc AI (nazywaną „Gemini w Firebase”).
  6. W tym samouczku nie potrzebujesz Google Analytics, więc wyłącz opcję Google Analytics.
  7. Kliknij Utwórz projekt, poczekaj, aż projekt zostanie udostępniony, a następnie kliknij Dalej.

Przejście na wyższy abonament Firebase

Aby korzystać z Cloud Storage dla Firebase, Twój projekt Firebase musi być objęty abonamentem z płatnością według wykorzystania (Blaze), co oznacza, że jest połączony z kontem rozliczeniowym Cloud.

  • Konto rozliczeniowe Cloud wymaga formy płatności, np. karty kredytowej.
  • Jeśli dopiero zaczynasz korzystać z Firebase i Google Cloud, sprawdź, czy możesz otrzymać środki w wysokości 300 USD i bezpłatne konto rozliczeniowe Cloud.
  • Jeśli wykonujesz te ćwiczenia w ramach wydarzenia, zapytaj organizatora, czy są dostępne środki w Google Cloud.

Aby przenieść projekt na abonament Blaze:

  1. W konsoli Firebase wybierz przejście na wyższy abonament.
  2. Wybierz pakiet Blaze. Postępuj zgodnie z instrukcjami wyświetlanymi na ekranie, aby połączyć konto rozliczeniowe Cloud z projektem.
    Jeśli w ramach tego przejścia na wyższy abonament konieczne było utworzenie konta rozliczeniowego Cloud, może być konieczne powrócenie do procesu przejścia na wyższy abonament w konsoli Firebase, aby go dokończyć.

Dodawanie aplikacji internetowej Firebase do projektu

  1. Kliknij ikonę internetu 58d6543a156e56f9.png, aby utworzyć nową aplikację internetową Firebase.
  2. Zarejestruj aplikację pod nazwą Friendly Chat, a potem zaznacz pole wyboru obok opcji Skonfiguruj też Hosting Firebase dla tej aplikacji. Kliknij Zarejestruj aplikację.
  3. W następnym kroku zobaczysz polecenie instalowania Firebase za pomocą npm i obiekt konfiguracji. Ten obiekt skopiujesz później w tym samouczku, więc na razie kliknij Dalej.

Okno Dodaj Firebase do aplikacji internetowej

  1. Następnie zobaczysz opcję instalacji wiersza poleceń Firebase. Jeśli nie masz jeszcze zainstalowanego narzędzia, zrób to teraz za pomocą polecenia npm install -g firebase-tools. Następnie kliknij Dalej.
  2. Następnie zobaczysz opcję zalogowania się w Firebase i wdrożenia w Hostingu Firebase. Zaloguj się w Firebase za pomocą polecenia firebase login, a potem kliknij Przejdź do konsoli. W kolejnym kroku wdrożysz aplikację w Hostingu Firebase.

Konfigurowanie usług Firebase

Aplikacja, którą zamierzamy utworzyć, korzysta z usług Firebase dostępnych w przypadku aplikacji internetowych:

  • Uwierzytelnianie Firebase, które umożliwia użytkownikom łatwe logowanie się w aplikacji.
  • Cloud Firestore do zapisywania danych strukturalnych w chmurze i otrzymywania natychmiastowych powiadomień o zmianach danych.
  • Cloud Storage dla Firebase do zapisywania plików w chmurze.
  • Hostingu Firebase do hostowania i obsługi zasobów.
  • Komunikacja w chmurze Firebase do wysyłania powiadomień push i wyświetlania wyskakujących powiadomień w przeglądarce.
  • Monitorowanie wydajności Firebase do zbierania danych o wydajności aplikacji.

Niektóre z tych usług wymagają specjalnej konfiguracji lub włączenia w konsoli Firebase.

Włączanie logowania przez Google w usłudze Uwierzytelnianie Firebase

Aby umożliwić użytkownikom logowanie się w aplikacji internetowej za pomocą kont Google, użyjemy metody logowania Google.

Musisz włączyć Logowanie przez Google:

  1. W konsoli Firebase w panelu po lewej stronie znajdź sekcję Kompilacja.
  2. Kliknij Uwierzytelnianie, a następnie Rozpocznij (jeśli to konieczne) i kliknij kartę Metoda logowania (lub kliknij tutaj, aby przejść bezpośrednio do tej karty).
  3. Włącz dostawcę Logowania przez Google
  4. Ustaw nazwę aplikacji widoczną publicznie na Friendly Chat i wybierz adres e-mail pomocy dotyczącej projektu z menu.
  5. Kliknij Zapisz.

f96888973c3d00cc.png

Konfigurowanie Cloud Firestore

Aplikacja internetowa używa Cloud Firestore do zapisywania i odbierania nowych wiadomości na czacie.

Aby skonfigurować Cloud Firestore w projekcie Firebase:

  1. W panelu po lewej stronie konsoli Firebase rozwiń Kompilacja, a następnie wybierz Baza danych Firestore.
  2. Kliknij Utwórz bazę danych.
  3. W polu Identyfikator bazy danych pozostaw wartość (default).
  4. Wybierz lokalizację bazy danych i kliknij Dalej.
    W przypadku prawdziwej aplikacji wybierz lokalizację, która jest blisko użytkowników.
  5. Kliknij Uruchom w trybie testowym. Przeczytaj wyłączenie odpowiedzialności dotyczące reguł bezpieczeństwa.
    W dalszej części tego laboratorium dodasz reguły bezpieczeństwa, aby zabezpieczyć swoje dane. Nierozpowszechniajani nie udostępniaj publicznie aplikacji bez dodania reguł bezpieczeństwa do bazy danych.
  6. Kliknij Utwórz.

Konfigurowanie Cloud Storage dla Firebase

Aplikacja internetowa używa Cloud Storage dla Firebase do przechowywania, przesyłania i udostępniania zdjęć.

Aby skonfigurować Cloud Storage dla Firebase w projekcie Firebase:

  1. W panelu po lewej stronie konsoli Firebase rozwiń Kompilacja, a następnie wybierz Storage.
  2. Kliknij Rozpocznij.
  3. Wybierz lokalizację domyślnego zasobnika Storage.
    Zasobniki w regionach US-WEST1, US-CENTRAL1 i US-EAST1 mogą korzystać z poziomu „Zawsze bezpłatny” w Google Cloud Storage. W przypadku zasobników w innych lokalizacjach obowiązuje cennik i wykorzystanie Google Cloud Storage.
  4. Kliknij Uruchom w trybie testowym. Przeczytaj wyłączenie odpowiedzialności dotyczące reguł bezpieczeństwa.
    W dalszej części tego laboratorium dodasz reguły bezpieczeństwa, aby zabezpieczyć swoje dane. Nieudostępniaj aplikacji publicznie bez dodania reguł bezpieczeństwa do zasobnika Storage.
  5. Kliknij Utwórz.

4. Konfigurowanie Firebase

Z katalogu appcheck-start zadzwoń pod numer:

firebase use --add

Gdy pojawi się prośba, wybierz identyfikator projektu, a potem nadaj projektowi Firebase alias. W przypadku tego projektu możesz po prostu podać alias default. Następnie musisz skonfigurować projekt lokalny, aby współpracował z Firebase.

  1. Otwórz ustawienia projektu w konsoli Firebase.
  2. Na karcie „Twoje aplikacje” wybierz pseudonim aplikacji, dla której potrzebujesz obiektu konfiguracji.
  3. W panelu fragmentu kodu pakietu Firebase SDK kliknij Config (Konfiguracja).
  4. Skopiuj fragment kodu obiektu konfiguracji, a potem dodaj go do appcheck-start/hosting/src/firebase-config.js. W pozostałej części tego samouczka założymy, że zmienna ma nazwę config.

firebase-config.js

const config = {
  apiKey: "API_KEY",
  authDomain: "PROJECT_ID.firebaseapp.com",
  databaseURL: "https://PROJECT_ID.firebaseio.com",
  projectId: "PROJECT_ID",
  storageBucket: "PROJECT_ID.firebasestorage.app",
  messagingSenderId: "SENDER_ID",
  appId: "APP_ID",
  measurementId: "G-MEASUREMENT_ID",
};

Z tego samego katalogu appcheck-start wywołaj:

firebase experiments:enable webframeworks

Umożliwia to obsługę platformy internetowej, na której oparty jest ten projekt.

Powinniśmy być już gotowi do uruchomienia projektu i sprawdzenia, czy projekt domyślny działa.

5. Wypróbuj aplikację bez App Check

Po skonfigurowaniu aplikacji i skonfigurowaniu pakietu SDK spróbuj używać aplikacji zgodnie z jej pierwotnym przeznaczeniem. Najpierw zainstaluj wszystkie zależności. W terminalu przejdź do katalogu appcheck-start/hosting. W tym katalogu uruchom polecenie npm install. Pobierze wszystkie zależności, które są potrzebne do działania projektu. Aby uruchomić aplikację w jej obecnym stanie, możesz użyć polecenia firebase serve. Aplikacja poprosi Cię o zalogowanie się na konto Google. Zrób to, a potem spróbuj wysłać na czacie kilka wiadomości i zdjęć.

Po przetestowaniu go lokalnie czas sprawdzić, jak działa w wersji produkcyjnej. Uruchom polecenie firebase deploy, aby wdrożyć aplikację internetową w internecie. Jest to kluczowy krok w demonstracji działania Sprawdzania aplikacji w rzeczywistych warunkach, ponieważ wymaga skonfigurowania domeny dla dostawcy atestów reCAPTCHA Enterprise.

Mamy nadzieję, że korzystasz z domyślnych funkcji aplikacji. publikować wiadomości na czacie i wykonywać inne czynności, które powinny być wykonywane tylko w aplikacji tego typu. Wadą obecnego stanu jest to, że każdy, kto ma konfigurację aplikacji z poprzedniego kroku, może uzyskać dostęp do zasobów backendu. Nadal muszą one przestrzegać reguł zabezpieczeń obowiązujących w systemach Firestore i Cloud Storage, ale poza tym mogą wysyłać zapytania, przechowywać dane i uzyskiwać do nich dostęp.

W kolejnych krokach:

  • Rejestracja w usłudze Sprawdzanie aplikacji
  • Sprawdzanie wymuszenia
  • Rozpoczęcie egzekwowania reguł

6. Włączanie Sprawdzania aplikacji i wymuszania

Zacznijmy od pobrania klucza reCAPTCHA Enterprise dla Twojego projektu i dodania go do Sprawdzania aplikacji. Zacznij od przejścia do sekcji reCAPTCHA Enterprise w konsoli Google Cloud. Wybierz projekt, a następnie włącz interfejs reCAPTCHA Enterprise API. Włącz interfejs API i poczekaj kilka minut, aż proces się zakończy. Następnie kliknij Utwórz klucz obok opcji Klucze dla przedsiębiorstw. Następnie w tej sekcji podaj wyświetlaną nazwę i wybierz klucz typu Witryna. Musisz określić domeny, w których jest hostowana Twoja aplikacja. Ponieważ planujesz hostować tę aplikację w Hostingu Firebase, użyj domyślnej nazwy hostingu, która zwykle jest równa ${YOUR_PROJECT_ID}.web.app. Domenę hostingu znajdziesz w sekcji Hosting w konsoli Firebase. Po wypełnieniu tych informacji kliknij GotoweUtwórz klucz.

Ekran tworzenia klucza reCAPTCHA

Po zakończeniu tego procesu u góry strony Szczegóły klucza zobaczysz identyfikator.

Okno rejestracji reCAPTCHA Enterprise

Skopiuj ten identyfikator do schowka. Jest to klucz używany w usłudze App Check. Następnie otwórz sekcję App Check w konsoli Firebase i kliknij Rozpocznij. Następnie kliknij Zarejestruj, a potem reCAPTCHA Enterprise i wklej skopiowany identyfikator w polu tekstowym Klucz witryny reCAPTCHA Enterprise. Pozostałe ustawienia pozostaw domyślne. Strona App Check powinna wyglądać mniej więcej tak:

Okno aplikacji Sprawdzania aplikacji, w którym rejestrujesz token reCAPTCHA Enterprise

Niezweryfikowane i niewymagające egzekwowania żądania

Po zarejestrowaniu klucza w konsoli Firebase wróć do uruchamiania witryny w przeglądarce, wpisując firebase serve. Aplikacja internetowa działa teraz lokalnie i możesz ponownie wysyłać żądania do backendu Firebase. Żądania są kierowane do backendu Firebase, dlatego są monitorowane przez Sprawdzanie aplikacji, ale nie są egzekwowane. Jeśli chcesz sprawdzić stan przychodzących żądań, możesz otworzyć sekcję Cloud Firestore na karcie Interfejsy API na stronie App Check w konsoli Firebase. Ponieważ nie masz jeszcze skonfigurowanego klienta do korzystania z weryfikacji aplikacji, zobaczysz coś podobnego do tego:

Panel Sprawdzania aplikacji pokazujący 100% niezweryfikowanych żądań klientów dotyczących Twojej aplikacji.

Do backendu dociera 100% niezweryfikowanych żądań. Ten ekran jest przydatny, ponieważ pokazuje, że prawie wszystkie żądania klientów pochodzą od klientów, którzy nie mają zintegrowanego Sprawdzania aplikacji.

Ten panel może wskazywać na kilka rzeczy. Pierwszą rzeczą, jaką może wskazywać, jest to, czy wszystkie aplikacje klienckie działają w najnowszej wersji klienta. Jeśli tak jest, możesz bezpiecznie wymusić Sprawdzanie aplikacji bez obawy o wyłączenie dostępu dla prawdziwego klienta Twojej aplikacji. Może to też pokazywać, ile prób uzyskania dostępu do Twojego backendu pochodziło spoza aplikacji. Mogą to być użytkownicy, którzy wysyłają zapytania do Twojego backendu bezpośrednio bez Twojej wiedzy. Skoro widzisz, że żądania nie są weryfikowane, zanim przejdziesz do weryfikowania żądań użytkowników, którzy mogą mieć nieweryfikowane żądanie do Twojego backendu, sprawdź, co się stanie z tymi użytkownikami.

Niezweryfikowane i egzekwowane żądania

Na poprzednim ekranie kliknij przycisk Wymuś, a potem ponownie kliknij Wymuś, jeśli pojawi się odpowiedni komunikat.

Panel niezweryfikowanych wskaźników z wyróżnionym przyciskiem Wymuś

Sprawdzanie aplikacji zacznie być egzekwowane. Będzie ono blokować żądania do usług backendu, które nie zostały zweryfikowane przez wybranego dostawcę atestów (w tym przypadku reCAPTCHA Enterprise). Wróć do uruchomionej aplikacji internetowej do biegania, która powinna działać pod adresem http://localhost:5000. Po odświeżeniu strony i próbie pobrania danych z bazy danych nic się nie dzieje. Jeśli otworzysz konsolę Chrome, aby odczytać błędy, zobaczysz coś podobnego do tego:

Uncaught Error in snapshot listener: FirebaseError: [code=permission-denied]: Missing or insufficient permissions.

Oznacza to, że Sprawdzanie aplikacji blokuje żądania, które nie przekazały prawidłowego tokena potwierdzającego w żądaniach do zasobów Firebase. Na razie możesz wyłączyć wymuszanie Sprawdzania aplikacji. W następnej sekcji dowiesz się, jak dodać Sprawdzanie aplikacji reCAPTCHA Enterprise do przykładowej aplikacji Friendly Chat.

7. Dodawanie klucza reCAPTCHA Enterprise do witryny

Dodamy klucz przedsiębiorstwa do Twojej aplikacji. Najpierw otwórz hosting/src/firebase-config.js i dodaj klucz reCAPTCHA Enterprise do tego fragmentu kodu:

const reCAPTCHAEnterpriseKey = {
  // Replace with your recaptcha enterprise site key
  key: "Replace with your recaptcha enterprise site key"
};

Po zakończeniu otwórz hosting/src/index.js i w wierszu 51 dodaj import z pliku firebase-config.js, aby pobrać klucz reCAPTCHA, a także zaimportuj bibliotekę Sprawdzania aplikacji, aby móc korzystać z dostawcy reCAPTCHA Enterprise.

// add from here
 import {
   initializeAppCheck,
   ReCaptchaEnterpriseProvider,
 } from 'firebase/app-check';
// to here

// replace this line
import { getFirebaseConfig } from './firebase-config.js';
// with this line
import { getFirebaseConfig, getReCaptchaKey } from './firebase-config.js';

Następnie w kolejnym wierszu utworzysz funkcję do skonfigurowania Sprawdzania aplikacji. Funkcja najpierw sprawdzi, czy jesteś w środowisku programistycznym. Jeśli tak, wydrukuje token debugowania, którego możesz użyć do lokalnego programowania.

import { getFirebaseConfig, getReCaptchaKey } from './firebase-config.js';
// add from here
 function setupAppCheck(app) {
   if(import.meta.env.MODE === 'development') {
     self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
   }
 }
// to here

Teraz zainicjuj Sprawdzanie aplikacji, aby współpracowało z wybranym dostawcą – w tym przypadku jest to reCAPTCHA Enterprise. Warto też automatycznie odświeżać token App Check w tle, co zapobiegnie opóźnieniom w interakcji użytkownika z usługą w przypadku, gdy token App Check straci ważność.

function setupAppCheck(app) {
   if(import.meta.env.MODE === 'development') {
     self.FIREBASE_APPCHECK_DEBUG_TOKEN = true;
   }
// add from here
   // Create a ReCaptchaEnterpriseProvider instance using your reCAPTCHA Enterprise
   // site key and pass it to initializeAppCheck().
   initializeAppCheck(app, {
     provider: new ReCaptchaEnterpriseProvider(getReCaptchaKey()),
     isTokenAutoRefreshEnabled: true // Set to true to allow auto-refresh.
   });
// to here
 }

Gdy upewnisz się, że aplikacja została zainicjowana, musisz wywołać utworzoną wcześniej funkcję setupAppCheck. U dołu pliku hosting/src/index.js dodaj wywołanie ostatnio dodanej metody.

const firebaseApp = initializeApp(getFirebaseConfig());
// add from here
setupAppCheck(firebaseApp);
// to here
getPerformance();
initFirebaseAuth();
loadMessages();

Najpierw przetestuj lokalnie

Najpierw przetestuj aplikację lokalnie. Jeśli aplikacja nie jest jeszcze obsługiwana lokalnie, uruchom firebase serve. Zauważysz, że aplikacja nadal nie wczytuje się lokalnie. Dzieje się tak, ponieważ domena Firebase została zarejestrowana tylko u dostawcy atestu reCAPTCHA, a nie w domenie localhost. Nigdy nie rejestruj adresu localhost jako zatwierdzonej domeny, ponieważ umożliwia to użytkownikom dostęp do ograniczonych backendów z aplikacji działającej lokalnie na ich komputerze. Zamiast tego, ponieważ ustawiono self.FIREBASE_APPCHECK_DEBUG_TOKEN = true, w konsoli JavaScript należy poszukać wiersza podobnego do tego:

App Check debug token: 55183c20-de61-4438-85e6-8065789265be. You will need to add it to your app's App Check settings in the Firebase console for it to work.

Skopiuj podany token debugowania (w tym przykładzie jest to : 55183c20-de61-4438-85e6-8065789265be) i wklej go w konfiguracji App Check w menu dodatkowym aplikacji.

Panel usługi App Check wskazujący lokalizację opcji Zarządzaj tokenami debugowania

Nadaj tokenowi niepowtarzalną nazwę, którą łatwo zapamiętasz, i kliknij Zapisz. Ta opcja umożliwia używanie w aplikacji tokena wygenerowanego przez klienta, co jest bezpieczniejszą alternatywą niż generowanie tokena debugowania i osadzanie go w aplikacji. Umieszczenie tokena w aplikacji może spowodować jego przypadkowe rozpowszechnienie wśród użytkowników, którzy mogą go wykorzystać do obejścia Twoich kontroli. Jeśli chcesz rozpowszechniać token debugowania, np. w środowisku CI, przeczytaj tę dokumentację, aby dowiedzieć się więcej o sposobach jego rozpowszechniania.

Przykład wypełniania tokena debugowania aliasem

Gdy token debugowania zostanie zarejestrowany w konsoli Firebase, możesz ponownie włączyć egzekwowanie weryfikacji aplikacji i sprawdzić, czy zawartość aplikacji wczytuje się lokalnie, wywołując firebase serve z terminala. Powinny się wyświetlić dane wprowadzone wcześniej w lokalnej wersji aplikacji internetowej. W konsoli powinien być nadal widoczny komunikat z tokenem debugowania.

Wypróbuj w wersji produkcyjnej

Gdy upewnisz się, że usługa App Check działa lokalnie, wdróż aplikację internetową w środowisku produkcyjnym. W terminalu ponownie wywołaj firebase deploy i załaduj stronę. Spakuje to Twoją aplikację internetową, aby można było ją uruchomić w Hostingu Firebase. Gdy aplikacja będzie hostowana w usłudze Firebase Hosting, spróbuj ją otworzyć pod adresem ${YOUR_PROJECT_ID}.web.app. Możesz otworzyć konsolę JavaScript. Nie powinien się już w niej wyświetlać token debugowania, a w projekcie powinny się wczytywać czaty. Po chwili korzystania z aplikacji możesz otworzyć sekcję Sprawdzanie aplikacji w konsoli Firebase i sprawdzić, czy wszystkie żądania wysyłane do aplikacji są weryfikowane.

8. Gratulacje!

Udało Ci się dodać weryfikację aplikacji Firebase do aplikacji internetowej.

W konsoli Firebase możesz skonfigurować obsługę tokena reCAPTCHA Enterprise w środowiskach produkcyjnych, a nawet skonfigurować tokeny debugowania na potrzeby lokalnego tworzenia. Dzięki temu aplikacje będą nadal mieć dostęp do zasobów Firebase z zatwierdzonych klientów, a w aplikacji nie będą występować oszukańcze działania.

Co dalej?

Aby dodać Sprawdzanie aplikacji Firebase, zapoznaj się z tą dokumentacją:

Dokumentacja