Przejście z wersji przedpremierowej pakietów SDK Vertex AI w Firebase na pakiety SDK Firebase AI Logic


Firebase AI Logic i jego pakiety SDK dla klientów były wcześniej nazywane „Vertex AI in Firebase”. Aby lepiej odzwierciedlać nasze rozszerzone usługi i funkcje (np. obsługujemy teraz Gemini Developer API!), zmieniliśmy nazwę i przekształciliśmy nasze usługi w Firebase AI Logic.

Aby bezpiecznie uzyskiwać dostęp do modeli generatywnej AI od Google bezpośrednio z aplikacji mobilnych lub internetowych, możesz teraz wybrać dostawcę „Gemini API” – dostępny od dawna Agent Platform Gemini API (formerly Vertex AI) lub Gemini Developer API. Oznacza to, że masz teraz możliwość korzystania z Gemini Developer API, która zapewnia bezpłatny poziom z rozsądnymi limitami szybkości i limitami wykorzystania.

Omówienie kroków migracji do pakietów SDK Firebase AI Logic

  • Krok 1. Wybierz najlepszego dostawcę „Gemini API” dla swojej aplikacji i przypadków użycia.

  • Krok 2. Włącz wymagane interfejsy API.

  • Krok 3. Zaktualizuj bibliotekę używaną w aplikacji.

  • Krok 4. Zaktualizuj inicjację w aplikacji.

  • Krok 5. Zaktualizuj kod w zależności od używanych funkcji.

Krok 1. Wybierz najlepszego dostawcę „Gemini API” dla swojej aplikacji

W ramach tej migracji możesz wybrać dostawcę „Gemini API”:

  • Starsze pakiety SDK „Vertex AI in Firebase” mogły używać tylko Agent Platform Gemini API (formerly Vertex AI).

  • Nowe pakiety SDK Firebase AI Logic umożliwiają wybór dostawcy, do którego chcesz dzwonić bezpośrednio z aplikacji mobilnej lub internetowej – Gemini Developer API lub Agent Platform Gemini API (formerly Vertex AI)Gemini API.

Sprawdź różnice między korzystaniem z tych 2 Gemini API dostawców, zwłaszcza pod względem obsługiwanych funkcji, cen i limitów szybkości. Na przykład Gemini Developer API nie obsługuje udostępniania plików za pomocą adresów URL Cloud Storage, ale może być dobrym wyborem, jeśli chcesz skorzystać z bezpłatnego poziomu i rozsądnego limitu.

Krok 2. Włącz wymagane interfejsy API

Aby korzystać z wybranego dostawcy „Gemini API”, sprawdź, czy w projekcie Firebase są włączone wszystkie wymagane interfejsy API.

Pamiętaj, że w projekcie możesz mieć włączonych obu dostawców interfejsów API jednocześnie.

  1. Zaloguj się w Firebasekonsoli, a potem wybierz projekt w Firebase.

  2. W konsoli Firebase otwórz Usługi AI > Logika AI.

  3. Kliknij Rozpocznij, aby uruchomić przepływ pracy z instrukcjami, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.

  4. Wybierz dostawcę „Gemini API”, którego chcesz używać z Firebase AI Logic pakietami SDK. W każdej chwili możesz skonfigurować i używać innego dostawcę interfejsu API.

    • Gemini Developer API – płatności opcjonalne (dostępne w bezpłatnym planie cenowym Spark)
      Proces w konsoli włączy wymagane interfejsy API i utworzy w projekcie Geminiklucz interfejsu API.
      Nie dodawaj tego klucza interfejsu API Gemini do bazy kodu aplikacji. Więcej informacji

    • Agent Platform Gemini API (formerly Vertex AI) – wymagane płatności (wymaga planu cenowego Blaze z płatnościami według wykorzystania)
      Proces w konsoli włączy w Twoim projekcie wymagane interfejsy API.

  5. Aby zaktualizować bibliotekę i inicjowanie w aplikacji, postępuj zgodnie z instrukcjami w tym przewodniku po migracji.

Krok 3. Zaktualizuj bibliotekę używaną w aplikacji

Zaktualizuj bazę kodu aplikacji, aby korzystać z biblioteki Firebase AI Logic.

Swift

  1. W Xcode, po otwarciu projektu aplikacji, zaktualizuj pakiet Firebase do wersji 12.5.0 lub nowszej, korzystając z jednej z tych opcji:

    • Opcja 1. Zaktualizuj wszystkie pakiety: kliknij Plik > Pakiety > Zaktualizuj do najnowszych wersji pakietów.

    • Opcja 2: zaktualizuj Firebase osobno. W sekcji Package Dependencies (Zależności pakietów) otwórz pakiet Firebase. Kliknij prawym przyciskiem myszy pakiet Firebase, a następnie wybierz Update Package (Zaktualizuj pakiet).

  2. Sprawdź, czy pakiet Firebase ma teraz wersję 12.5.0 lub nowszą. Jeśli nie, sprawdź, czy określone wymagania dotyczące pakietu umożliwiają aktualizację do wersji 12.5.0 lub nowszej.

  3. W Edytorze projektu wybierz cel aplikacji, a następnie otwórz sekcję Frameworks, Libraries, and Embedded Content (Frameworki, biblioteki i treści osadzone).

  4. Dodaj nową bibliotekę: kliknij przycisk +, a następnie dodaj FirebaseAILogic z pakietu Firebase.

  5. Po zakończeniu migracji aplikacji (patrz pozostałe sekcje tego przewodnika) usuń starą bibliotekę:
    wybierz FirebaseVertexAI-Preview, a następnie naciśnij przycisk –.

Kotlin

  1. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) zastąp stare zależności (w odpowiednich przypadkach) tymi poniżej.

    Pamiętaj, że przed usunięciem starej zależności może być łatwiej przenieść bazę kodu aplikacji (patrz pozostałe sekcje tego przewodnika).

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. Zsynchronizuj projekt aplikacji na Androida z plikami Gradle.

Jeśli nie chcesz używać Firebase Android BoM, dodaj tylko zależność dla biblioteki firebase-ai i zaakceptuj najnowszą wersję sugerowaną przez Androida Studio.

Java

  1. W pliku Gradle modułu (na poziomie aplikacji) (zwykle <project>/<app-module>/build.gradle.kts lub <project>/<app-module>/build.gradle) zastąp stare zależności (w odpowiednich przypadkach) tymi poniżej.

    Pamiętaj, że przed usunięciem starej zależności może być łatwiej przenieść bazę kodu aplikacji (patrz pozostałe sekcje tego przewodnika).

    // BEFORE
    dependencies {
      implementation("com.google.firebase:firebase-vertexai:16.0.0-betaXX")
    }
    
    
    // AFTER
    dependencies {
      // Import the BoM for the Firebase platform
      implementation(platform("com.google.firebase:firebase-bom:35.0.0"))
    
      // Add the dependency for the Firebase AI Logic library
      // When using the BoM, you don't specify versions in Firebase library dependencies
      implementation("com.google.firebase:firebase-ai")
    }
  2. Zsynchronizuj projekt aplikacji na Androida z plikami Gradle.

Jeśli nie chcesz używać Firebase Android BoM, dodaj tylko zależność dla biblioteki firebase-ai i zaakceptuj najnowszą wersję sugerowaną przez Androida Studio.

Web

  1. Pobierz najnowszą wersję pakietu Firebase JS SDK na potrzeby internetu za pomocą npm:

    npm i firebase@latest

    LUB

    yarn add firebase@latest
  2. W miejscach, w których zaimportowano bibliotekę, zaktualizuj instrukcje importowania, aby używać zamiast niej firebase/ai.

    Pamiętaj, że przed usunięciem starych importów może być łatwiej przenieść bazę kodu aplikacji (patrz pozostałe sekcje tego przewodnika).

    // BEFORE
    import { initializeApp } from "firebase/app";
    import { getVertexAI, getGenerativeModel } from "firebase/vertexai-preview";
    
    
    // AFTER
    import { initializeApp } from "firebase/app";
    import { getAI, getGenerativeModel } from "firebase/ai";

Dart

  1. Zaktualizuj plik pubspec.yaml, aby używać pakietu firebase_ai, uruchamiając to polecenie w katalogu projektu Flutter:

    flutter pub add firebase_ai
  2. Ponownie skompiluj projekt Fluttera:

    flutter run
  3. Po zakończeniu migracji aplikacji (patrz pozostałe sekcje tego przewodnika) usuń stary pakiet:

    flutter pub remove firebase_vertexai

Unity

Obsługa Unity nie była dostępna od „Vertex AI in Firebase”.

Dowiedz się, jak zacząć korzystać z pakietu Firebase AI Logic SDK na potrzeby Unity.

Krok 4. Zaktualizuj inicjację w aplikacji

Kliknij Gemini API dostawcę, aby wyświetlić na tej stronie treści i kod dostawcy.

Zaktualizuj sposób inicjowania usługi dla wybranego dostawcy interfejsu API i utwórz instancję GenerativeModel.

Swift


import FirebaseAILogic

// Initialize the Gemini Developer API backend service
let ai = FirebaseAI.firebaseAI(backend: .googleAI())

// Create a `GenerativeModel` instance with a model that supports your use case
let model = ai.generativeModel(modelName: "gemini-3.8-flash")

Kotlin


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
val model = Firebase.ai(backend = GenerativeBackend.googleAI())
                        .generativeModel("gemini-3.8-flash")

Java


// Initialize the Gemini Developer API backend service.
// Create a `GenerativeModel` instance with a model that supports your use case.
GenerativeModel ai = FirebaseAI.getInstance(GenerativeBackend.googleAI())
        .generativeModel("gemini-3.8-flash");

// Use the GenerativeModelFutures Java compatibility layer which offers
// support for ListenableFuture and Publisher APIs
GenerativeModelFutures model = GenerativeModelFutures.from(ai);

Web


import { initializeApp } from "firebase/app";
import { getAI, getGenerativeModel, GoogleAIBackend } from "firebase/ai";

// TODO(developer): Replace the following with your app's Firebase configuration
// See: https://firebase.google.com/docs/web/learn-more#config-object
const firebaseConfig = {
  // ...
};

// Initialize FirebaseApp
const firebaseApp = initializeApp(firebaseConfig);

// Initialize the Gemini Developer API backend service.
const ai = getAI(firebaseApp, { backend: new GoogleAIBackend() });

// Create a `GenerativeModel` instance with a model that supports your use case.
const model = getGenerativeModel(ai, { model: "gemini-3.8-flash" });

Dart


import 'package:firebase_ai/firebase_ai.dart';
import 'package:firebase_core/firebase_core.dart';
import 'firebase_options.dart';

// Initialize FirebaseApp
await Firebase.initializeApp(
  options: DefaultFirebaseOptions.currentPlatform,
);

// Initialize the Gemini Developer API backend service
// Create a `GenerativeModel` instance with a model that supports your use case
final model =
      FirebaseAI.googleAI().generativeModel(model: 'gemini-3.8-flash');

Unity

Pomoc dotycząca Unity nie była dostępna w przypadku „Vertex AI in Firebase”.

Dowiedz się, jak zacząć korzystać z pakietu Firebase AI Logic SDK na potrzeby Unity.

Pamiętaj, że w zależności od używanej funkcji nie zawsze możesz utworzyć instancję GenerativeModel. Aby przesyłać strumieniowo dane wejściowe i wyjściowe za pomocą Gemini Live API, utwórz instancję LiveModel.

Krok 5. Zaktualizuj kod w zależności od używanych funkcji

W tym kroku opisujemy zmiany, które mogą być wymagane w zależności od używanych funkcji.

  • Jeśli używasz Cloud Storageadresów URLi w ramach tej migracji przełączysz się na używanie znaku Gemini Developer API, musisz zaktualizować żądania multimodalne, aby uwzględniały pliki jako dane wbudowane (lub używać adresów URL YouTube w przypadku filmów).

  • W wersjach GA pakietów SDK „Vertex AI in Firebase” wprowadziliśmy kilka zmian. Te same zmiany są wymagane w przypadku korzystania z Firebase AI Logicpakietów SDK. Zapoznaj się z tymi listami, aby sprawdzić, czy musisz wprowadzić w kodzie jakieś zmiany, aby umożliwić korzystanie z Firebase AI Logic pakietu SDK.

Wymagany w przypadku wszystkich języków i platform

  • Wywoływanie funkcji
    Jeśli ta funkcja została wdrożona przed udostępnieniem ogólnym, musisz zaktualizować sposób definiowania schematu. Aby dowiedzieć się, jak pisać deklaracje funkcji, zapoznaj się z aktualnym przewodnikiem po wywoływaniu funkcji.

  • Generowanie danych strukturalnych (np. JSON) za pomocą funkcji responseSchema
    Jeśli ta funkcja została wdrożona przed udostępnieniem jej w wersji ogólnodostępnej, musisz zaktualizować sposób definiowania schematu. Aby dowiedzieć się, jak pisać schematy JSON, zapoznaj się z nowym przewodnikiem po danych strukturalnych.

  • Timeout

    • Zmieniliśmy domyślny limit czasu dla żądań na 180 sekund.

Wymagane w zależności od platformy lub języka

Swift

  • Wyliczenia

    • Zastąpiono większość typów enum typami struct ze zmiennymi statycznymi. Ta zmiana zapewnia większą elastyczność w rozwoju interfejsu API w sposób zgodny wstecznie. Gdy używasz instrukcji switch, musisz teraz uwzględnić klauzulę default:, aby obejmowała nieznane lub nieobsługiwane wartości, w tym nowe wartości, które zostaną dodane do pakietu SDK w przyszłości.

    • Zmieniono nazwę wyliczenia BlockThreshold na HarmBlockThreshold. Ten typ jest teraz struct.

    • Usunięto przypadki unknown i unspecified z tych wyliczeń (obecnie struct): HarmCategory, HarmBlockThreshold, HarmProbability, BlockReason i FinishReason.

    • Zastąpiliśmy wyliczenie ModelContent.Part protokołem o nazwie Part, aby umożliwić dodawanie nowych typów w sposób zgodny wstecznie. Ta zmiana jest bardziej szczegółowo opisana w sekcji Części treści.

  • Elementy treści

    • Usunięto protokół ThrowingPartsRepresentable i uproszczono inicjatory dla ModelContent, aby uniknąć sporadycznych błędów kompilatora. Obrazy, które nie są prawidłowo zakodowane, nadal będą powodować błędy podczas używania w generateContent.

    • Zastąpiliśmy przypadki ModelContent.Part tymi struct typami zgodnymi z protokołem Part:

      • .text do TextPart
      • .data do InlineDataPart
      • .fileData do FileDataPart
      • .functionCall do FunctionCallPart
      • .functionResponse do FunctionResponsePart
  • Kategoria szkodliwości

    • Zmieniliśmy element HarmCategory, aby nie był już zagnieżdżony w typie SafetySetting. Jeśli odnosisz się do niego jako SafetySetting.HarmCategory, możesz zastąpić to określenie słowem HarmCategory.
  • Opinie dotyczące bezpieczeństwa

    • Usunęliśmy typ SafetyFeedback, ponieważ nie był używany w żadnej z odpowiedzi.
  • Metadane cytowania

    • Zmieniliśmy nazwę usługi citationSources na citations w CitationMetadata.
  • Łączna liczba znaków podlegających opłacie

    • Zmieniono właściwość totalBillableCharacters w CountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
  • Odpowiedź kandydata

    • Nazwa CandidateResponse została zmieniona na Candidate, aby była zgodna z innymi platformami.
  • Konfiguracja generowania

    • Zmieniono publiczne właściwości GenerationConfig na internal. Wszystkie te ustawienia można nadal konfigurować w inicjatorze.

Kotlin

  • Wyliczenia

    • Zastąpiliśmy zajęcia enum i sealed zwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w rozwijaniu interfejsu API w sposób zgodny wstecznie.

    • Zmieniono nazwę wyliczenia BlockThreshold na HarmBlockThreshold.

    • Usunięto wartości z tych wyliczeń: HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason i FinishReason.

  • Metody obiektu blob

    • Zmieniliśmy nazwy wszystkich metod, które zawierały znak Blob, tak aby zamiast niego używały znaku InlineData.
  • Ustawienia bezpieczeństwa

    • Pole method zostało zmienione na dopuszczające wartość null.
  • Klasa czasu trwania

    • Usunęliśmy wszystkie przypadki użycia klasy Duration w Kotlinie i zastąpiliśmy je klasą long. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
  • Metadane cytowania

    • Wszystkie pola zadeklarowane wcześniej w CitationMetadata zostały umieszczone w nowej klasie o nazwie Citation. Cytaty znajdziesz na liście o nazwie citations w CitationMetadata. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
  • Licz tokeny

    • Pole totalBillableCharacters zostało zmienione na dopuszczające wartość null.
  • Łączna liczba znaków podlegających opłacie

    • Zmieniono właściwość totalBillableCharacters w CountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
  • Tworzenie instancji modelu

    • Przeniesiono parametr requestOptions na koniec listy parametrów, aby był zgodny z innymi platformami.
  • Live API

    • Usunięto wartość UNSPECIFIED z klasy wyliczeniowej ResponseModality. Zamiast tego użyj null.

    • Zmieniono nazwę LiveGenerationConfig.setResponseModalities na LiveGenerationConfig.setResponseModality.

    • Usunięto klasę LiveContentResponse.Status, a pola stanu zagnieżdżono jako właściwości klasy LiveContentResponse.

    • Usunęliśmy klasę LiveContentResponse i zamiast niej podaliśmy podklasy LiveServerMessage, które pasują do odpowiedzi modelu.

    • Zmieniono wartość zwracaną z LiveModelFutures.connect na ListenableFuture<LiveSessionFutures> zamiast ListenableFuture<LiveSession>.

Java

  • Wyliczenia

    • Zastąpiliśmy zajęcia enum i sealed zwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w rozwijaniu interfejsu API w sposób zgodny wstecznie.

    • Zmieniono nazwę wyliczenia BlockThreshold na HarmBlockThreshold.

    • Usunięto wartości z tych wyliczeń: HarmBlockThreshold, HarmProbability, HarmSeverity, BlockReason i FinishReason.

  • Metody obiektu blob

    • Zmieniliśmy nazwy wszystkich metod, które zawierały znak Blob, tak aby zamiast niego używały znaku InlineData.
  • Ustawienia bezpieczeństwa

    • Pole method zostało zmienione na dopuszczające wartość null.
  • Klasa czasu trwania

    • Usunęliśmy wszystkie przypadki użycia klasy Duration w Kotlinie i zastąpiliśmy je klasą long. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
  • Metadane cytowania

    • Wszystkie pola zadeklarowane wcześniej w CitationMetadata zostały umieszczone w nowej klasie o nazwie Citation. Cytaty znajdziesz na liście o nazwie citations w CitationMetadata. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
  • Licz tokeny

    • Pole totalBillableCharacters zostało zmienione na dopuszczające wartość null.
  • Łączna liczba znaków podlegających opłacie

    • Zmieniono właściwość totalBillableCharacters w CountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
  • Tworzenie instancji modelu

    • Przeniesiono parametr requestOptions na koniec listy parametrów, aby był zgodny z innymi platformami.
  • Live API

    • Usunięto wartość UNSPECIFIED z klasy wyliczeniowej ResponseModality. Zamiast tego użyj null.

    • Zmieniono nazwę LiveGenerationConfig.setResponseModalities na LiveGenerationConfig.setResponseModality.

    • Usunięto klasę LiveContentResponse.Status, a pola stanu zagnieżdżono jako właściwości klasy LiveContentResponse.

    • Usunęliśmy klasę LiveContentResponse i zamiast niej podaliśmy podklasy LiveServerMessage, które pasują do odpowiedzi modelu.

    • Zmieniono wartość zwracaną z LiveModelFutures.connect na ListenableFuture<LiveSessionFutures> zamiast ListenableFuture<LiveSession>.

  • Zmieniono różne metody konstruktora Java, aby zwracały instancję swojej klasy zamiast void.

Web

  • Wyliczenia

    • Usunięto wartości z tych wyliczeń: HarmCategory, BlockThreshold, HarmProbability, HarmSeverity, BlockReason i FinishReason.
  • Przyczyna blokady

    • Zmieniono pole blockReason w PromptFeedback na opcjonalne.

Zmiany są wymagane tylko wtedy, gdy zaczynasz używać Gemini Developer API (zamiast Agent Platform Gemini API (formerly Vertex AI)):

  • Ustawienia bezpieczeństwa

    • Usunięto użycia nieobsługiwanego znaku SafetySetting.method.
  • Dane w treści

    • Usunięto użycia nieobsługiwanego znaku InlineDataPart.videoMetadata.

Dart

  • Wyliczenia

    • Usunęliśmy wartości z tych wyliczeń: HarmCategory, HarmProbability, BlockReason i FinishReason.
  • Część danych

    • Zmieniliśmy nazwę funkcji DataPart na InlineDataPart, a funkcji static data na inlineData, aby była zgodna z innymi platformami.
  • Opcje żądania

    • Usunięto RequestOptions, ponieważ timeout nie działało. W najbliższej przyszłości zostanie ona ponownie dodana, ale zostanie przeniesiona do typu GenerativeModel, aby pasować do innych platform.
  • Sekwencje zatrzymania

    • Zmieniono parametr stopSequences w GenerationConfig tak, aby był opcjonalny i domyślnie miał wartość null zamiast pustej tablicy.
  • Cytowania

    • Zmieniliśmy nazwę usługi citationSources na citations w CitationMetadata. Typ CitationSource został zmieniony na Citation, aby był zgodny z innymi platformami.
  • Niepotrzebne typy, metody i właściwości publiczne

    • Usunięto te typy, metody i właściwości, które zostały udostępnione nieumyślnie: defaultTimeout, CountTokensResponseFields, parseCountTokensResponse, parseEmbedContentResponse, parseGenerateContentResponse, parseContent, BatchEmbedContentsResponse, ContentEmbedding, EmbedContentRequest i EmbedContentResponse.
  • Licz tokeny

    • Usunięto dodatkowe pola z funkcji countTokens, które nie są już potrzebne. Wystarczy tylko contents.
  • Tworzenie instancji modelu

    • Przeniesiono parametr systemInstruction na koniec listy parametrów, aby był zgodny z innymi platformami.
  • Funkcja osadzania

    • Usunięto z modelu nieobsługiwaną funkcję osadzania (embedContent i batchEmbedContents).

Unity

Obsługa Unity nie była dostępna od „Vertex AI in Firebase”.

Dowiedz się, jak zacząć korzystać z pakietu Firebase AI Logic SDK na potrzeby Unity.

Możliwe błędy związane z migracją

Podczas migracji do wersji GA Firebase AI Logic możesz napotkać błędy, jeśli nie wprowadzisz wszystkich wymaganych zmian opisanych w tym przewodniku.

Błąd 403: Requests to this API firebasevertexai.googleapis.com ... are blocked.

Jeśli pojawi się błąd 403 z komunikatem Requests to this API firebasevertexai.googleapis.com ... are blocked., zwykle oznacza to, że klucz interfejsu Firebase API w pliku konfiguracyjnym lub obiekcie Firebase nie ma wymaganego interfejsu API na liście dozwolonych w przypadku usługi, której próbujesz użyć.

Sprawdź, czy klucz interfejsu API Firebase używany przez aplikację ma wszystkie wymagane interfejsy API na liście dozwolonych „Ograniczenia interfejsu API”. W przypadku Firebase AI Logic klucz interfejsu API Firebase musi mieć na liście dozwolonych co najmniej interfejs API Firebase AI Logic. Ten interfejs API powinien zostać automatycznie dodany do listy dozwolonych klucza API, gdy włączysz wymagane interfejsy API w konsoli Firebase.

Wszystkie klucze interfejsu API możesz wyświetlić w panelu Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.


Prześlij opinię o korzystaniu z usługi Firebase AI Logic