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.
Zaloguj się w Firebasekonsoli, a potem wybierz projekt w Firebase.
W konsoli Firebase otwórz Usługi AI > Logika AI.
Kliknij Rozpocznij, aby uruchomić przepływ pracy z instrukcjami, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.
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 informacjiAgent 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.
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
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).
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.
W Edytorze projektu wybierz cel aplikacji, a następnie otwórz sekcję Frameworks, Libraries, and Embedded Content (Frameworki, biblioteki i treści osadzone).
Dodaj nową bibliotekę: kliknij przycisk +, a następnie dodaj FirebaseAILogic z pakietu Firebase.
Po zakończeniu migracji aplikacji (patrz pozostałe sekcje tego przewodnika) usuń starą bibliotekę:
wybierz FirebaseVertexAI-Preview, a następnie naciśnij przycisk –.
Kotlin
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.ktslub<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") }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
W pliku Gradle modułu (na poziomie aplikacji) (zwykle
<project>/<app-module>/build.gradle.ktslub<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") }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
Pobierz najnowszą wersję pakietu Firebase JS SDK na potrzeby internetu za pomocą npm:
npm i firebase@latest
LUB
yarn add firebase@latest
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
Zaktualizuj plik
pubspec.yaml, aby używać pakietufirebase_ai, uruchamiając to polecenie w katalogu projektu Flutter:flutter pub add firebase_ai
Ponownie skompiluj projekt Fluttera:
flutter run
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
enumtypamistructze zmiennymi statycznymi. Ta zmiana zapewnia większą elastyczność w rozwoju interfejsu API w sposób zgodny wstecznie. Gdy używasz instrukcjiswitch, 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
BlockThresholdnaHarmBlockThreshold. Ten typ jest terazstruct.Usunięto przypadki
unknowniunspecifiedz tych wyliczeń (obecniestruct):HarmCategory,HarmBlockThreshold,HarmProbability,BlockReasoniFinishReason.Zastąpiliśmy wyliczenie
ModelContent.Partprotokołem o nazwiePart, 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ół
ThrowingPartsRepresentablei uproszczono inicjatory dlaModelContent, aby uniknąć sporadycznych błędów kompilatora. Obrazy, które nie są prawidłowo zakodowane, nadal będą powodować błędy podczas używania wgenerateContent.Zastąpiliśmy przypadki
ModelContent.Parttymistructtypami zgodnymi z protokołemPart:.textdoTextPart.datadoInlineDataPart.fileDatadoFileDataPart.functionCalldoFunctionCallPart.functionResponsedoFunctionResponsePart
Kategoria szkodliwości
- Zmieniliśmy element
HarmCategory, aby nie był już zagnieżdżony w typieSafetySetting. Jeśli odnosisz się do niego jakoSafetySetting.HarmCategory, możesz zastąpić to określenie słowemHarmCategory.
- Zmieniliśmy element
Opinie dotyczące bezpieczeństwa
- Usunęliśmy typ
SafetyFeedback, ponieważ nie był używany w żadnej z odpowiedzi.
- Usunęliśmy typ
Metadane cytowania
- Zmieniliśmy nazwę usługi
citationSourcesnacitationswCitationMetadata.
- Zmieniliśmy nazwę usługi
Łączna liczba znaków podlegających opłacie
- Zmieniono właściwość
totalBillableCharacterswCountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
- Zmieniono właściwość
Odpowiedź kandydata
- Nazwa
CandidateResponsezostała zmieniona naCandidate, aby była zgodna z innymi platformami.
- Nazwa
Konfiguracja generowania
- Zmieniono publiczne właściwości
GenerationConfignainternal. Wszystkie te ustawienia można nadal konfigurować w inicjatorze.
- Zmieniono publiczne właściwości
Kotlin
Wyliczenia
Zastąpiliśmy zajęcia
enumisealedzwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w rozwijaniu interfejsu API w sposób zgodny wstecznie.Zmieniono nazwę wyliczenia
BlockThresholdnaHarmBlockThreshold.Usunięto wartości z tych wyliczeń:
HarmBlockThreshold,HarmProbability,HarmSeverity,BlockReasoniFinishReason.
Metody obiektu blob
- Zmieniliśmy nazwy wszystkich metod, które zawierały znak
Blob, tak aby zamiast niego używały znakuInlineData.
- Zmieniliśmy nazwy wszystkich metod, które zawierały znak
Ustawienia bezpieczeństwa
- Pole
methodzostało zmienione na dopuszczające wartość null.
- Pole
Klasa czasu trwania
- Usunęliśmy wszystkie przypadki użycia klasy
Durationw Kotlinie i zastąpiliśmy je klasąlong. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
- Usunęliśmy wszystkie przypadki użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadatazostały umieszczone w nowej klasie o nazwieCitation. Cytaty znajdziesz na liście o nazwiecitationswCitationMetadata. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Licz tokeny
- Pole
totalBillableCharacterszostało zmienione na dopuszczające wartość null.
- Pole
Łączna liczba znaków podlegających opłacie
- Zmieniono właściwość
totalBillableCharacterswCountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
- Zmieniono właściwość
Tworzenie instancji modelu
- Przeniesiono parametr
requestOptionsna koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Live API
Usunięto wartość
UNSPECIFIEDz klasy wyliczeniowejResponseModality. Zamiast tego użyjnull.Zmieniono nazwę
LiveGenerationConfig.setResponseModalitiesnaLiveGenerationConfig.setResponseModality.Usunięto klasę
LiveContentResponse.Status, a pola stanu zagnieżdżono jako właściwości klasyLiveContentResponse.Usunęliśmy klasę
LiveContentResponsei zamiast niej podaliśmy podklasyLiveServerMessage, które pasują do odpowiedzi modelu.Zmieniono wartość zwracaną z
LiveModelFutures.connectnaListenableFuture<LiveSessionFutures>zamiastListenableFuture<LiveSession>.
Java
Wyliczenia
Zastąpiliśmy zajęcia
enumisealedzwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w rozwijaniu interfejsu API w sposób zgodny wstecznie.Zmieniono nazwę wyliczenia
BlockThresholdnaHarmBlockThreshold.Usunięto wartości z tych wyliczeń:
HarmBlockThreshold,HarmProbability,HarmSeverity,BlockReasoniFinishReason.
Metody obiektu blob
- Zmieniliśmy nazwy wszystkich metod, które zawierały znak
Blob, tak aby zamiast niego używały znakuInlineData.
- Zmieniliśmy nazwy wszystkich metod, które zawierały znak
Ustawienia bezpieczeństwa
- Pole
methodzostało zmienione na dopuszczające wartość null.
- Pole
Klasa czasu trwania
- Usunęliśmy wszystkie przypadki użycia klasy
Durationw Kotlinie i zastąpiliśmy je klasąlong. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
- Usunęliśmy wszystkie przypadki użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadatazostały umieszczone w nowej klasie o nazwieCitation. Cytaty znajdziesz na liście o nazwiecitationswCitationMetadata. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Licz tokeny
- Pole
totalBillableCharacterszostało zmienione na dopuszczające wartość null.
- Pole
Łączna liczba znaków podlegających opłacie
- Zmieniono właściwość
totalBillableCharacterswCountTokensResponse, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
- Zmieniono właściwość
Tworzenie instancji modelu
- Przeniesiono parametr
requestOptionsna koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Live API
Usunięto wartość
UNSPECIFIEDz klasy wyliczeniowejResponseModality. Zamiast tego użyjnull.Zmieniono nazwę
LiveGenerationConfig.setResponseModalitiesnaLiveGenerationConfig.setResponseModality.Usunięto klasę
LiveContentResponse.Status, a pola stanu zagnieżdżono jako właściwości klasyLiveContentResponse.Usunęliśmy klasę
LiveContentResponsei zamiast niej podaliśmy podklasyLiveServerMessage, które pasują do odpowiedzi modelu.Zmieniono wartość zwracaną z
LiveModelFutures.connectnaListenableFuture<LiveSessionFutures>zamiastListenableFuture<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,BlockReasoniFinishReason.
- Usunięto wartości z tych wyliczeń:
Przyczyna blokady
- Zmieniono pole
blockReasonwPromptFeedbackna opcjonalne.
- Zmieniono pole
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.
- Usunięto użycia nieobsługiwanego znaku
Dane w treści
- Usunięto użycia nieobsługiwanego znaku
InlineDataPart.videoMetadata.
- Usunięto użycia nieobsługiwanego znaku
Dart
Wyliczenia
- Usunęliśmy wartości z tych wyliczeń:
HarmCategory,HarmProbability,BlockReasoniFinishReason.
- Usunęliśmy wartości z tych wyliczeń:
Część danych
- Zmieniliśmy nazwę funkcji
DataPartnaInlineDataPart, a funkcjistaticdatanainlineData, aby była zgodna z innymi platformami.
- Zmieniliśmy nazwę funkcji
Opcje żądania
- Usunięto
RequestOptions, ponieważtimeoutnie działało. W najbliższej przyszłości zostanie ona ponownie dodana, ale zostanie przeniesiona do typuGenerativeModel, aby pasować do innych platform.
- Usunięto
Sekwencje zatrzymania
- Zmieniono parametr
stopSequenceswGenerationConfigtak, aby był opcjonalny i domyślnie miał wartośćnullzamiast pustej tablicy.
- Zmieniono parametr
Cytowania
- Zmieniliśmy nazwę usługi
citationSourcesnacitationswCitationMetadata. TypCitationSourcezostał zmieniony naCitation, aby był zgodny z innymi platformami.
- Zmieniliśmy nazwę usługi
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,EmbedContentRequestiEmbedContentResponse.
- Usunięto te typy, metody i właściwości, które zostały udostępnione nieumyślnie:
Licz tokeny
- Usunięto dodatkowe pola z funkcji
countTokens, które nie są już potrzebne. Wystarczy tylkocontents.
- Usunięto dodatkowe pola z funkcji
Tworzenie instancji modelu
- Przeniesiono parametr
systemInstructionna koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Funkcja osadzania
- Usunięto z modelu nieobsługiwaną funkcję osadzania (
embedContentibatchEmbedContents).
- Usunięto z modelu nieobsługiwaną funkcję osadzania (
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