Firebase AI Logic i jego pakiety SDK klienta 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ę naszych usług i przekształciliśmy je 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 Vertex AI Gemini API lub Gemini Developer API. Oznacza to, że możesz teraz korzystać z Gemini Developer API, która oferuje 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 inicjowanie 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 przypadku tej migracji możesz wybrać dostawcę „Gemini API”:
Starsze pakiety SDK „Vertex AI in Firebase” mogły używać tylko Vertex AI Gemini API.
Nowe pakiety SDK Firebase AI Logic umożliwiają wybór dostawcyGemini API, którego chcesz wywołać bezpośrednio z aplikacji mobilnej lub internetowej – Gemini Developer API lub Vertex AI Gemini API.
Sprawdź różnice między korzystaniem z tych 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 jednocześnie obu dostawców interfejsów API.
Zaloguj się w Firebasekonsoli, a potem wybierz projekt Firebase.
W konsoli Firebase otwórz stronę Firebase AI Logic.
Kliknij Rozpocznij, aby uruchomić procedurę, która pomoże Ci skonfigurować wymagane interfejsy API i zasoby w projekcie.
Wybierz dostawcę „Gemini API”, którego chcesz używać z pakietami SDK Firebase AI Logic. W każdej chwili możesz skonfigurować i używać innego dostawcy 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 kodu aplikacji. Więcej informacjiVertex AI Gemini API – 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 migracji.
Krok 3. Zaktualizuj bibliotekę używaną w aplikacji.
Zaktualizuj kod aplikacji, aby korzystać z biblioteki Firebase AI Logic.
Swift
Po otwarciu projektu aplikacji w Xcode zaktualizuj pakiet Firebase do wersji 11.13.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 Zależności pakietu znajdź pakiet Firebase. Kliknij prawym przyciskiem myszy pakiet Firebase, a następnie wybierz Update Package (Zaktualizuj pakiet).
Sprawdź, czy pakiet Firebase ma teraz wersję 11.13.0 lub nowszą. Jeśli nie, sprawdź, czy określone wymagania dotyczące pakietu umożliwiają aktualizację do wersji 11.13.0 lub nowszej.
Wybierz cel aplikacji w edytorze projektu, a potem otwórz sekcję Frameworks, Libraries, and Embedded Content (Frameworki, biblioteki i treści osadzone).
Dodaj nową bibliotekę: kliknij przycisk +, a następnie dodaj FirebaseAI 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.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 łatwiej będzie 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:33.16.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 na Androida z plikami Gradle.
Pamiętaj, że jeśli nie chcesz używać Firebase Android BoM, po prostu dodaj zależność dla biblioteki firebase-ai
i zaakceptuj najnowszą wersję sugerowaną przez Android Studio.
Java
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 łatwiej będzie 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:33.16.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 na Androida z plikami Gradle.
Pamiętaj, że jeśli nie chcesz używać Firebase Android BoM, po prostu dodaj zależność dla biblioteki firebase-ai
i zaakceptuj najnowszą wersję sugerowaną przez Android 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
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 dla Unity.
Krok 4. Zaktualizuj inicjację w aplikacji
Kliknij dostawcę Gemini API, 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 FirebaseAI
// 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-2.5-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-2.5-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-2.5-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-2.5-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-2.5-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 dla Unity.
Pamiętaj, że w zależności od używanej funkcji nie zawsze możesz utworzyć instancję GenerativeModel
.
- Aby uzyskać dostęp do modelu Imagen, utwórz instancję
ImagenModel
.
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 Storage adresów URL i w ramach tej migracji, musisz zaktualizować żądania multimodalne, aby uwzględniały pliki jako dane wbudowane (lub używać adresów URL YouTube w przypadku filmów).Gemini Developer API
W wersjach GA pakietów SDK „Vertex AI in Firebase” wprowadziliśmy kilka zmian. Te same zmiany są wymagane w przypadku korzystania z pakietów SDK.Firebase AI Logic Zapoznaj się z tymi listami, aby sprawdzić, czy musisz wprowadzić w kodzie jakieś zmiany, aby umożliwić korzystanie z Firebase AI Logic 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.Limit czasu
- Zmieniono domyślny limit czasu oczekiwania na żądania na 180 sekund.
Wymagane w zależności od platformy lub języka
Swift
Wyliczenia
Zastąpiliśmy większość typów
enum
typamistruct
ze zmiennymi statycznymi. Ta zmiana zapewnia większą elastyczność w zakresie rozwoju interfejsu API w sposób zgodny wstecznie. Podczas używania instrukcjiswitch
musisz teraz uwzględnićdefault:
, aby obejmować 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
naHarmBlockThreshold
. Ten typ jest terazstruct
.Usunięto przypadki
unknown
iunspecified
z tych wyliczeń (obecniestruct
):HarmCategory
,HarmBlockThreshold
,HarmProbability
,BlockReason
iFinishReason
.Zastąpiliśmy wyliczenie
ModelContent.Part
protokołem o nazwiePart
, aby umożliwić dodawanie nowych typów w sposób zgodny wstecznie. Ta zmiana jest szczegółowo opisana w sekcji Części treści.
Elementy treści
Usunięto protokół
ThrowingPartsRepresentable
i 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.Part
tymi typamistruct
zgodnymi z protokołemPart
:.text
doTextPart
.data
doInlineDataPart
.fileData
doFileDataPart
.functionCall
doFunctionCallPart
.functionResponse
doFunctionResponsePart
Kategoria szkodliwości
- Zmieniono element
HarmCategory
, aby nie był już zagnieżdżony w typieSafetySetting
. Jeśli używasz nazwySafetySetting.HarmCategory
, możesz ją zastąpić nazwąHarmCategory
.
- Zmieniono element
Opinie dotyczące bezpieczeństwa
- Usunięto typ
SafetyFeedback
, ponieważ nie był używany w żadnej z odpowiedzi.
- Usunięto typ
Metadane cytowania
- Zmieniliśmy nazwę właściwości
citationSources
nacitations
wCitationMetadata
.
- Zmieniliśmy nazwę właściwości
Łączna liczba znaków podlegających rozliczeniu
- Zmieniono właściwość
totalBillableCharacters
wCountTokensResponse
, aby była opcjonalna, co odzwierciedla sytuacje, w których nie są wysyłane żadne znaki.
- Zmieniono właściwość
Odpowiedź kandydata
- Nazwa
CandidateResponse
została zmieniona naCandidate
, aby była zgodna z innymi platformami.
- Nazwa
Konfiguracja generowania
- Zmieniono właściwości publiczne
GenerationConfig
nainternal
. Wszystkie te ustawienia można nadal konfigurować w inicjatorze.
- Zmieniono właściwości publiczne
Kotlin
Wyliczenia
Zastąpiono zajęcia
enum
isealed
zwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w zakresie rozwoju interfejsu API w sposób zgodny wstecznie.Zmieniono nazwę wyliczenia
BlockThreshold
naHarmBlockThreshold
.Usunięto wartości z tych wyliczeń:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
iFinishReason
.
Metody obiektu blob
- W nazwach wszystkich metod, które zawierały
Blob
, zamieniliśmy ten ciąg znaków naInlineData
.
- W nazwach wszystkich metod, które zawierały
Ustawienia bezpieczeństwa
- Pole
method
zostało zmienione na dopuszczające wartość null.
- Pole
Klasa czasu trwania
- Usunięto wszystkie użycia klasy
Duration
w Kotlinie i zastąpiono je klasąlong
. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
- Usunięto wszystkie użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadata
zostały umieszczone w nowej klasie o nazwieCitation
. Cytaty znajdziesz na liście o nazwiecitations
wCitationMetadata
. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Licz tokeny
- Pole
totalBillableCharacters
zostało zmienione na dopuszczające wartość null.
- Pole
Łączna liczba znaków podlegających rozliczeniu
- Zmieniono właściwość
totalBillableCharacters
wCountTokensResponse
, 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
requestOptions
na koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Live API
Usunięto wartość
UNSPECIFIED
z klasy wyliczeniowejResponseModality
. Zamiast tego użyjnull
.Zmieniono nazwę
LiveGenerationConfig.setResponseModalities
naLiveGenerationConfig.setResponseModality
.Usunęliśmy klasę
LiveContentResponse.Status
, a zamiast tego zagnieździliśmy pola stanu jako właściwości klasyLiveContentResponse
.Usunęliśmy klasę
LiveContentResponse
i zamiast niej udostępniliśmy podklasyLiveServerMessage
, które pasują do odpowiedzi z modelu.Zmieniono
LiveModelFutures.connect
, aby zwracaćListenableFuture<LiveSessionFutures>
zamiastListenableFuture<LiveSession>
.
Java
Wyliczenia
Zastąpiono zajęcia
enum
isealed
zwykłymi zajęciami. Ta zmiana zapewnia większą elastyczność w zakresie rozwoju interfejsu API w sposób zgodny wstecznie.Zmieniono nazwę wyliczenia
BlockThreshold
naHarmBlockThreshold
.Usunięto wartości z tych wyliczeń:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
iFinishReason
.
Metody obiektu blob
- W nazwach wszystkich metod, które zawierały
Blob
, zamieniliśmy ten ciąg znaków naInlineData
.
- W nazwach wszystkich metod, które zawierały
Ustawienia bezpieczeństwa
- Pole
method
zostało zmienione na dopuszczające wartość null.
- Pole
Klasa czasu trwania
- Usunięto wszystkie użycia klasy
Duration
w Kotlinie i zastąpiono je klasąlong
. Ta zmiana zapewnia lepszą interoperacyjność z Javą.
- Usunięto wszystkie użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadata
zostały umieszczone w nowej klasie o nazwieCitation
. Cytaty znajdziesz na liście o nazwiecitations
wCitationMetadata
. Ta zmiana pozwala lepiej dopasować typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Licz tokeny
- Pole
totalBillableCharacters
zostało zmienione na dopuszczające wartość null.
- Pole
Łączna liczba znaków podlegających rozliczeniu
- Zmieniono właściwość
totalBillableCharacters
wCountTokensResponse
, 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
requestOptions
na koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Live API
Usunięto wartość
UNSPECIFIED
z klasy wyliczeniowejResponseModality
. Zamiast tego użyjnull
.Zmieniono nazwę
LiveGenerationConfig.setResponseModalities
naLiveGenerationConfig.setResponseModality
.Usunęliśmy klasę
LiveContentResponse.Status
, a zamiast tego zagnieździliśmy pola stanu jako właściwości klasyLiveContentResponse
.Usunęliśmy klasę
LiveContentResponse
i zamiast niej udostępniliśmy podklasyLiveServerMessage
, które pasują do odpowiedzi z modelu.Zmieniono
LiveModelFutures.connect
, aby zwracaćListenableFuture<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
,BlockReason
iFinishReason
.
- Usunięto wartości z tych wyliczeń:
Przyczyna blokady
- Zmieniono
blockReason
wPromptFeedback
na opcjonalne.
- Zmieniono
Zmiany są wymagane tylko wtedy, gdy zaczynasz używać znaku Gemini Developer API (zamiast znaku Vertex AI Gemini API):
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
,BlockReason
iFinishReason
.
- Usunęliśmy wartości z tych wyliczeń:
Część danych
- Zmieniliśmy nazwę funkcji
DataPart
naInlineDataPart
, a funkcjistatic
data
nainlineData
, aby była zgodna z innymi platformami.
- Zmieniliśmy nazwę funkcji
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 typuGenerativeModel
, aby pasować do innych platform.
- Usunięto
Sekwencje zatrzymania
- Zmieniono parametr
stopSequences
wGenerationConfig
tak, aby był opcjonalny i domyślnie przyjmował wartośćnull
zamiast pustej tablicy.
- Zmieniono parametr
Cytowania
- Zmieniliśmy nazwę właściwości
citationSources
nacitations
wCitationMetadata
. TypCitationSource
został zmieniony naCitation
w celu zachowania zgodności z innymi platformami.
- Zmieniliśmy nazwę właściwości
Niepotrzebne typy, metody i właściwości publiczne
- Usunęliśmy 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
iEmbedContentResponse
.
- Usunęliśmy 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
systemInstruction
na koniec listy parametrów, aby był zgodny z innymi platformami.
- Przeniesiono parametr
Funkcja umieszczania
- Usunięto z modelu nieobsługiwaną funkcję osadzania (
embedContent
ibatchEmbedContents
).
- Usunięto z modelu nieobsługiwaną funkcję osadzania (
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 dla Unity.
Możliwe błędy związane z migracją
Podczas migracji do wersji GA usługi 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 otrzymasz błąd 403 z komunikatem Requests to this API firebasevertexai.googleapis.com ... are blocked.
, zwykle oznacza to, że klucz interfejsu Firebase API w pliku lub obiekcie konfiguracyjnym Firebase nie ma wymaganego interfejsu API na liście dozwolonych interfejsów API dla 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 sekcji Interfejsy API i usługi > Dane logowania w konsoli Google Cloud.
Prześlij opinię o korzystaniu z usługi Firebase AI Logic