Google is committed to advancing racial equity for Black communities. See how.
Ta strona została przetłumaczona przez Cloud Translation API.
Switch to English

Podłącz swoją aplikację i zacznij prototypować

Zanim zaczniesz korzystać z pakietu Firebase Local Emulator Suite, upewnij się, że utworzyłeś projekt Firebase, skonfigurowałeś środowisko programistyczne oraz wybrałeś i zainstalowałeś pakiety SDK Firebase dla swojej platformy zgodnie z tematami Pierwsze kroki z Firebase dla Twojej platformy: iOS , Android lub w sieci .

Prototypuj i testuj

Pakiet Local Emulator Suite zawiera kilka emulatorów produktów, zgodnie z opisem we wprowadzeniu do pakietu Firebase Local Emulator Suite . Możesz prototypować i testować za pomocą pojedynczych emulatorów, a także kombinacji emulatorów, według własnego uznania, odpowiadających produktom Firebase, których używasz w produkcji.

Interakcja między bazą danych Firebase a emulatorami funkcji
Emulatory baz danych i funkcji chmury w ramach pełnego pakietu lokalnego emulatora .

W tym temacie, aby przedstawić przepływ pracy pakietu lokalnego emulatora, załóżmy, że pracujesz nad aplikacją, która używa typowej kombinacji produktów: bazy danych Firebase i funkcji chmury wyzwalanych przez operacje na tej bazie danych.

Po zainicjowaniu lokalnie projektu Firebase cykl programowania przy użyciu pakietu Local Emulator Suite obejmuje zwykle trzy kroki:

  1. Prototyp działa interaktywnie z emulatorami i interfejsem użytkownika pakietu emulatorów.

  2. Jeśli używasz emulatora bazy danych lub emulatora Cloud Functions, wykonaj jednorazową czynność, aby połączyć aplikację z emulatorami.

  3. Zautomatyzuj swoje testy za pomocą emulatorów i niestandardowych skryptów.

Zainicjuj lokalnie projekt Firebase

Upewnij się, że instalujesz CLI lub aktualizujesz do najnowszej wersji .

curl -sL firebase.tools | bash

Jeśli jeszcze tego nie zrobiłeś, zainicjuj bieżący katalog roboczy jako projekt Firebase, postępując zgodnie z instrukcjami wyświetlanymi na ekranie, aby określić, że używasz Cloud Functions i Cloud Firestore lub Realtime Database :

firebase init

Twój katalog projektu będzie teraz zawierał pliki konfiguracyjne Firebase, plik definicji reguł zabezpieczeń Firebase dla bazy danych, katalog functions zawierający kod funkcji chmury i inne pliki pomocnicze.

Prototypuj interaktywnie

Pakiet Local Emulator Suite został zaprojektowany, aby umożliwić szybkie prototypowanie nowych funkcji, a wbudowany interfejs użytkownika pakietu jest jednym z najbardziej przydatnych narzędzi do prototypowania. To trochę tak, jakby konsola Firebase działała lokalnie.

Korzystając z interfejsu użytkownika Emulator Suite, możesz iterować projekt bazy danych, wypróbowywać różne przepływy danych obejmujące funkcje chmury, oceniać zmiany reguł zabezpieczeń, sprawdzać dzienniki, aby potwierdzić, jak działają usługi zaplecza i nie tylko. Następnie, jeśli chcesz zacząć od nowa, po prostu wyczyść bazę danych i zacznij od nowa z nowym pomysłem na projekt.

Wszystko jest dostępne po uruchomieniu pakietu lokalnego emulatora z:

firebase emulators:start

Aby stworzyć prototyp naszej hipotetycznej aplikacji, skonfigurujmy i przetestujmy podstawową funkcję chmury w celu zmodyfikowania wpisów tekstowych w bazie danych, a także utwórz i zapełnij tę bazę danych w interfejsie użytkownika pakietu emulatora, aby ją uruchomić.

  1. Utwórz funkcję chmury wyzwalaną przez zapis w bazie danych, edytując plik functions/index.js w katalogu projektu. Zastąp zawartość istniejącego pliku następującym fragmentem. Ta funkcja nasłuchuje zmian węzłów w hierarchii messages , konwertuje zawartość original właściwości węzła na wielkie litery i zapisuje wynik we właściwości uppercase tego węzła.
  2.   const functions = require('firebase-functions');
    
      exports.makeUppercase = functions.database.ref('/messages/{pushId}/original')
          .onCreate((snapshot, context) => {
            const original = snapshot.val();
            console.log('Uppercasing', context.params.pushId, original);
            const uppercase = original.toUpperCase();
            return snapshot.ref.parent.child('uppercase').set(uppercase);
          });
      
  3. Uruchom pakiet Local Emulator Suite z firebase emulators:start . Uruchomione zostaną funkcje chmury i emulatory bazy danych, automatycznie skonfigurowane do współpracy.
  4. Wyświetl interfejs użytkownika w przeglądarce pod http://localhost:4000 . Port 4000 jest domyślnym portem interfejsu użytkownika, ale sprawdź komunikaty terminala wysyłane przez interfejs wiersza polecenia Firebase. Zwróć uwagę na stan dostępnych emulatorów. W naszym przypadku będą działały emulatory Cloud Functions i Realtime Database.
    Mój obraz
  5. W interfejsie użytkownika, na karcie danych w czasie rzeczywistym, za pomocą elementów sterujących edytora zawartości bazy danych, aby utworzyć zestaw węzłów z messages węzeł zawierający message1 węzeł kolei zawierający węzeł z kluczem zestawu do original i wartości zestawu do test . To uruchamia naszą funkcję chmury. Zauważ, że wkrótce pojawi się nowa właściwość uppercase z wartością TEST .
    Mój obrazMój obraz
  6. Sprawdź kartę Dzienniki , aby potwierdzić, że funkcja nie uruchomiła błędów inot podczas aktualizowania bazy danych.

Możesz łatwo iterować między kodem funkcji w chmurze a interaktywnymi edycjami bazy danych, aż uzyskasz przepływ danych, którego szukasz, bez dotykania kodu dostępu do bazy danych w aplikacji, ponownej kompilacji i ponownego uruchamiania zestawów testów.

Połącz swoją aplikację z emulatorami

Gdy osiągniesz dobre postępy w interaktywnym prototypowaniu i zdecydujesz się na projekt, będziesz gotowy do dodania kodu dostępu do bazy danych do swojej aplikacji przy użyciu odpowiedniego zestawu SDK. Będziesz nadal używać karty bazy danych i, w przypadku funkcji, karty dzienników w interfejsie użytkownika pakietu emulatora, aby potwierdzić, że zachowanie aplikacji jest poprawne.

Pamiętaj, że pakiet Local Emulator Suite jest lokalnym narzędziem programistycznym. Zapisywanie w produkcyjnych bazach danych nie spowoduje wyzwolenia funkcji prototypowanych lokalnie.

Aby przełączyć się na zapisywanie w bazie danych przez aplikację, musisz wskazać klasy testowe lub konfigurację w aplikacji w emulatorze bazy danych czasu rzeczywistego.

Android
        // 10.0.2.2 is the special IP address to connect to the 'localhost' of
        // the host computer from an Android emulator.
        FirebaseDatabase database = FirebaseDatabase.getInstance();
        database.useEmulator("10.0.2.2", 9000);
iOS - Swift
    // In almost all cases the ns (namespace) is your project ID.
let db = Database.database(url:"http://localhost:9000?ns=YOUR_DATABASE_NAMESPACE")

Web v8

var db = firebase.database();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  db.useEmulator("localhost", 9000);
} 

Web v9

import { getDatabase, useDatabaseEmulator } from "firebase/database";

const db = getDatabase();
if (location.hostname === "localhost") {
  // Point to the RTDB emulator running on localhost.
  useDatabaseEmulator(db, "localhost", 9000);
} 

Zautomatyzuj swoje testy za pomocą niestandardowych skryptów

Teraz przejdźmy do ostatniego ogólnego kroku przepływu pracy. Gdy już stworzysz prototyp swojej funkcji w aplikacji i wygląda ona obiecująco na wszystkich Twoich platformach, możesz przejść do ostatecznej implementacji i testów. W przypadku testów jednostkowych i przepływów pracy CI można uruchamiać emulatory, uruchamiać testy skryptowe i wyłączać emulatory w jednym wywołaniu za pomocą polecenia exec :

firebase emulators:exec "./testdir/test.sh"

Poznaj bardziej szczegółowo poszczególne emulatory

Teraz, gdy już wiesz, jak wygląda podstawowy przepływ pracy po stronie klienta, możesz przejść do szczegółowych informacji o poszczególnych emulatorach w pakiecie, w tym o tym, jak ich używać do tworzenia aplikacji po stronie serwera:

Co następne?

Koniecznie przeczytaj tematy związane z określonymi emulatorami, do których linki znajdują się powyżej. Następnie: