Firebase AI Logic i jego pakiety SDK dla klienta nazywały się wcześniej „Vertex AI in Firebase”. Aby lepiej odzwierciedlać rozszerzone usługi i funkcje (np. teraz obsługujemy Gemini Developer API!), zmieniliśmy nazwę naszych usług i pakietów na Firebase AI Logic.
Aby uzyskać bezpieczny dostęp do generatywnych modeli AI od Google bezpośrednio z aplikacji mobilnych lub internetowych, możesz teraz wybrać dostawcę „Gemini API” – może to być dostępny od dawna model Vertex AI Gemini API lub nowy model Gemini Developer API. Oznacza to, że możesz teraz korzystać z opcji Gemini Developer API, która zapewnia poziom bezpłatny z rozsądnymi limitami stawek i limitami.
Omówienie kroków, które należy wykonać, aby przejść na Firebase AI Logic SDK
Krok 1. Wybierz najlepszego dostawcę „Gemini API” do 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 inicjalizację w aplikacji.
Krok 5. Zaktualizuj kod w zależności od używanych funkcji.
Krok 1. Wybierz dla swojej aplikacji najlepszego dostawcę interfejsu „Gemini API”
Podczas migracji możesz wybrać dostawcę „Gemini API”:
Stare pakiety SDK „Vertex AI in Firebase” mogły używać tylko interfejsu Vertex AI Gemini API.
Nowe pakiety SDK Firebase AI Logic umożliwiają wybranie dostawcy usługi „Gemini API”, do której chcesz się bezpośrednio odwoływać z aplikacji mobilnej lub internetowej – może to być usługa Gemini Developer API lub Vertex AI Gemini API.
Zapoznaj się z różnicami między tymi dwoma usługami Gemini API, zwłaszcza w zakresie obsługiwanych funkcji, cen i limitów stawek. Na przykład usługa Gemini Developer API nie obsługuje przesyłania 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ądnej kwoty.
Krok 2. Włącz wymagane interfejsy API
Aby korzystać z wybranego dostawcy „Gemini API”, upewnij się, że 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 interfejsu API.
Zaloguj się w konsoli Firebase, a potem wybierz projekt Firebase.
W konsoli Firebase otwórz stronę Firebase AI Logic.
Kliknij Rozpocznij, aby uruchomić skonfigurowany przepływ pracy, który pomoże Ci skonfigurować wymagane interfejsy API i zasoby dla projektu.
Wybierz dostawcę interfejsu Gemini API, którego chcesz używać z pakietami SDK Firebase AI Logic. W każdej chwili możesz skonfigurować innego dostawcę interfejsu API i z niego korzystać.
Gemini Developer API – płatność opcjonalna (dostępna w bezpłatnym planie cennika Spark)
: w ramach procesu w konsoli zostaną włączone wymagane interfejsy API i utworzony w Twoim projekcie klucz interfejsu API Gemini.
Nie dodawaj tego klucza interfejsu API Gemini do kodu aplikacji. Więcej informacjiVertex AI Gemini API – wymagane jest rozliczenie (wymaga abonamentu Blaze z płatnościami według wykorzystania)
W ramach procesu w konsoli zostaną włączone wymagane interfejsy API w Twoim projekcie.
Aby zaktualizować bibliotekę i inicjowanie w aplikacji, przejdź do dalszej części tego przewodnika.
Krok 3. Zaktualizuj bibliotekę używaną w aplikacji
Zaktualizuj kod aplikacji, aby używać 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. Aktualizuj Firebase osobno: przejdź do pakietu Firebase w sekcji Zależności pakietu. Kliknij prawym przyciskiem myszy pakiet Firebase, a następnie wybierz Zaktualizuj pakiet.
Upewnij się, że pakiet Firebase ma teraz wersję 11.13.0 lub nowszą. Jeśli tak nie jest, sprawdź, czy określone wymagania dotyczące pakietu umożliwiają aktualizację do wersji 11.13.0 lub nowszej.
W Edytorze projektu wybierz ustawienia docelowe aplikacji, a potem przejdź do sekcji Frameworki, biblioteki i osadzone treści.
Dodaj nową bibliotekę: kliknij przycisk + i dodaj FirebaseAI z pakietu Firebase.
Po zakończeniu migracji aplikacji (patrz pozostałe sekcje tego przewodnika) usuń starą bibliotekę:
wybierz FirebaseVertexAI-Preview, a potem 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) podanymi niżej.Pamiętaj, że przed usunięciem starej zależności może być łatwiej przenieść kod źródłowy 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.14.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 Androida z plikami Gradle.
Jeśli zdecydujesz się nie używać pakietu Firebase Android BoM, po prostu dodaj zależność do 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) podanymi niżej.Pamiętaj, że przed usunięciem starej zależności może być łatwiej przenieść kod źródłowy 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.14.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 Androida z plikami Gradle.
Jeśli zdecydujesz się nie używać pakietu Firebase Android BoM, po prostu dodaj zależność do 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 biblioteka została zaimportowana, zaktualizuj instrukcje importowania, aby zamiast tego używać funkcji
firebase/ai
.Pamiętaj, że przed usunięciem starych importów może być łatwiej przenieść kod źródłowy 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
Zbuduj ponownie 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 rozpocząć korzystanie z pakietu SDK Firebase AI Logic dla Unity.
Krok 4. Zaktualizuj inicjalizację w aplikacji
Kliknij dostawcę Gemini API, aby wyświetlić na tej stronie treści i kod związane z tym dostawcą. |
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.0-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.0-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.0-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.0-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.0-flash');
Unity
Pomoc dotycząca Unity nie była dostępna w ramach „Vertex AI in Firebase”.
Dowiedz się, jak rozpocząć korzystanie z pakietu SDK Firebase AI Logic dla Unity.
Pamiętaj, że w zależności od używanej funkcji możesz nie zawsze tworzyć 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
Ten krok opisuje zmiany, które mogą być wymagane w zależności od tego, z których funkcji korzystasz.
Jeśli używasz adresów URL Cloud Storage i, które zostały zastąpione, aby używać adresów Gemini Developer API w ramach tej migracji, musisz zaktualizować swoje multimodalne żądania, aby uwzględniać pliki jako dane wbudowane (lub używać adresów URL filmów w YouTube).
Wprowadziliśmy kilka zmian w wersjach GA pakietów SDK „Vertex AI in Firebase”. Te same zmiany są wymagane do korzystania z bibliotek Firebase AI Logic SDK. Sprawdź te listy, aby dowiedzieć się, jakie zmiany należy wprowadzić w kodzie, aby korzystać z pakietu SDK Firebase AI Logic.
Wymagany we wszystkich językach i na wszystkich platformach
Wywołania funkcji
Jeśli ta funkcja została zaimplementowana przed GA, musisz zaktualizować sposób definiowania schematu. Aby dowiedzieć się, jak pisać deklaracje funkcji, przeczytaj zaktualizowany przewodnik po wywoływaniu funkcji.Generowanie uporządkowanego wyjścia (np. w formacie JSON) za pomocą funkcji
responseSchema
Jeśli wdrożyłeś tę funkcję przed udostępnieniem wersji GA, musisz zaktualizować sposób definiowania schematu. Aby dowiedzieć się, jak pisać schematy JSON, zapoznaj się z nowym przewodnikiem dotyczącym danych wyjściowych w formacie uporządkowanym.Limit czasu
- Zmieniono domyślny limit czasu żądań na 180 sekund.
Wymagany na podstawie platformy lub języka
Swift
Wyliczenia
Zastąpiliśmy większość typów
enum
zmiennymistruct
ze zmiennymi statycznymi. Ta zmiana daje nam większą elastyczność w rozwijaniu interfejsu API w sposób zapewniający zgodność wsteczną. Jeśli używasz instrukcjiswitch
, musisz uwzględnić przypadekdefault:
, aby uwzględnić nieznane lub nieobsługiwane wartości, w tym nowe wartości dodane do pakietu SDK w przyszłości.Nazwa zbioru
BlockThreshold
została zmieniona naHarmBlockThreshold
. Ten typ jest teraz typemstruct
.Usunięto przypadki
unknown
iunspecified
z tych zbiorów:HarmCategory
,HarmBlockThreshold
,HarmProbability
,BlockReason
iFinishReason
.struct
Wymieniliśmy enumerację
ModelContent.Part
na protokół o nazwiePart
, aby umożliwić dodawanie nowych typów w sposób zgodny z wstecz. Ta zmiana jest opisana bardziej szczegółowo w sekcji Elementy treści.
Elementy treści
Usunięto protokół
ThrowingPartsRepresentable
i uproszczono inicjalizatory dlaModelContent
, aby uniknąć sporadycznych błędów kompilatora. Obrazy, które nie są prawidłowo zakodowane, będą nadal generować błędy podczas używania wgenerateContent
.Zgodnie z protokołem
Part
zastąpiono przypadkiModelContent.Part
tymi typamistruct
:.text
doTextPart
.data
doInlineDataPart
.fileData
doFileDataPart
.functionCall
doFunctionCallPart
.functionResponse
doFunctionResponsePart
Kategoria szkody
- Element
HarmCategory
nie jest już zagnieżdżony w elemencie typuSafetySetting
. Jeśli używasz nazwySafetySetting.HarmCategory
, możesz ją zastąpić nazwąHarmCategory
.
- Element
Informacje dotyczące bezpieczeństwa
- Usunięto typ
SafetyFeedback
, ponieważ nie był używany w żadnej z odpowiedzi.
- Usunięto typ
Metadane cytowania
- Nazwa właściwości
citationSources
została zmieniona nacitations
w plikuCitationMetadata
.
- Nazwa właściwości
Łączna liczba znaków podlegających rozliczeniu
- Właściwość
totalBillableCharacters
w elementachCountTokensResponse
została zmieniona na opcjonalną, aby uwzględnić sytuacje, w których nie są wysyłane żadne znaki.
- Właściwość
Odpowiedź kandydata
- Zmieniliśmy nazwę
CandidateResponse
naCandidate
, aby była zgodna z innymi platformami.
- Zmieniliśmy nazwę
Konfiguracja generowania
- Zmieniono publiczne właściwości z
GenerationConfig
nainternal
. Wszystkie te parametry pozostają konfigurowalne w inicjalizowanym obiekcie.
- Zmieniono publiczne właściwości z
Kotlin
Wyliczenia
Zastąpiono zajęcia
enum
isealed
zwykłymi zajęciami. Ta zmiana daje większą elastyczność w rozwijaniu interfejsu API w sposób zapewniający zgodność wsteczną.Nazwa zbioru
BlockThreshold
została zmieniona naHarmBlockThreshold
.Usunięto wartości z tych typów danych:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
iFinishReason
.
Metody obiektów blob
- W nazwach wszystkich metod, w których nazwie występuje znak
Blob
, zastąpiliśmy go znakiemInlineData
.
- W nazwach wszystkich metod, w których nazwie występuje znak
Ustawienia bezpieczeństwa
- Zmieniono pole
method
tak, aby mogło być puste.
- Zmieniono pole
Klasa czasu trwania
- Usunięto wszystkie przypadki użycia klasy
Duration
w Kotlinie i zastąpiono ją klasąlong
. Ta zmiana zapewnia lepszą współpracę z językiem Java.
- Usunięto wszystkie przypadki użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadata
zostały zapakowane do nowej klasy o nazwieCitation
. Odwołania można znaleźć na liściecitations
w sekcjiCitationMetadata
. Ta zmiana pozwala lepiej dopasowywać typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Liczba tokenów
- Zmieniono pole
totalBillableCharacters
tak, aby mogło być puste.
- Zmieniono pole
Łączna liczba znaków podlegających rozliczeniu
- Właściwość
totalBillableCharacters
w elementachCountTokensResponse
została zmieniona na opcjonalną, aby uwzględnić sytuacje, w których nie są wysyłane żadne znaki.
- Właściwość
Tworzenie wystąpienia modelu
- Parametr
requestOptions
został przeniesiony na koniec listy parametrów, aby dostosować go do innych platform.
- Parametr
Live API
Usunięto wartość
UNSPECIFIED
dla klasy wyliczeńResponseModality
. Zamiast tego użyjnull
.Nazwa
LiveGenerationConfig.setResponseModalities
została zmieniona naLiveGenerationConfig.setResponseModality
.Usunięto klasę
LiveContentResponse.Status
, a zamiast niej osadzono pola stanu jako właściwości klasyLiveContentResponse
.Usunięto klasę
LiveContentResponse
, a zamiast niej udostępniono podklasyLiveServerMessage
, które odpowiadają odpowiedziom z modelu.Zmieniono
LiveModelFutures.connect
, aby zwracało wartośćListenableFuture<LiveSessionFutures>
zamiastListenableFuture<LiveSession>
.
Java
Wyliczenia
Zastąpiono zajęcia
enum
isealed
zwykłymi zajęciami. Ta zmiana daje większą elastyczność w rozwijaniu interfejsu API w sposób zapewniający zgodność wsteczną.Nazwa zbioru
BlockThreshold
została zmieniona naHarmBlockThreshold
.Usunięto wartości z tych typów danych:
HarmBlockThreshold
,HarmProbability
,HarmSeverity
,BlockReason
iFinishReason
.
Metody obiektów blob
- W nazwach wszystkich metod, w których nazwie występuje znak
Blob
, zastąpiliśmy go znakiemInlineData
.
- W nazwach wszystkich metod, w których nazwie występuje znak
Ustawienia bezpieczeństwa
- Zmieniono pole
method
tak, aby mogło być puste.
- Zmieniono pole
Klasa czasu trwania
- Usunięto wszystkie przypadki użycia klasy
Duration
w Kotlinie i zastąpiono ją klasąlong
. Ta zmiana zapewnia lepszą współpracę z językiem Java.
- Usunięto wszystkie przypadki użycia klasy
Metadane cytowania
- Wszystkie pola zadeklarowane wcześniej w
CitationMetadata
zostały zapakowane do nowej klasy o nazwieCitation
. Odwołania można znaleźć na liściecitations
w sekcjiCitationMetadata
. Ta zmiana pozwala lepiej dopasowywać typy na różnych platformach.
- Wszystkie pola zadeklarowane wcześniej w
Liczba tokenów
- Zmieniono pole
totalBillableCharacters
tak, aby mogło być puste.
- Zmieniono pole
Łączna liczba znaków podlegających rozliczeniu
- Właściwość
totalBillableCharacters
w elementachCountTokensResponse
została zmieniona na opcjonalną, aby uwzględnić sytuacje, w których nie są wysyłane żadne znaki.
- Właściwość
Tworzenie wystąpienia modelu
- Parametr
requestOptions
został przeniesiony na koniec listy parametrów, aby dostosować go do innych platform.
- Parametr
Live API
Usunięto wartość
UNSPECIFIED
dla klasy wyliczeńResponseModality
. Zamiast tego użyjnull
.Nazwa
LiveGenerationConfig.setResponseModalities
została zmieniona naLiveGenerationConfig.setResponseModality
.Usunięto klasę
LiveContentResponse.Status
, a zamiast niej osadzono pola stanu jako właściwości klasyLiveContentResponse
.Usunięto klasę
LiveContentResponse
, a zamiast niej udostępniono podklasyLiveServerMessage
, które odpowiadają odpowiedziom z modelu.Zmieniono
LiveModelFutures.connect
, aby zwracało wartośćListenableFuture<LiveSessionFutures>
zamiastListenableFuture<LiveSession>
.
Zmieniono różne metody kreatora Java, aby zwracały instancję 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ń:
Powód blokady
- Zmieniono
blockReason
wPromptFeedback
na opcjonalne.
- Zmieniono
Zmiany wymagane tylko wtedy, gdy zaczynasz używać wersji Gemini Developer API (zamiast wersji Vertex AI Gemini API):
Ustawienia bezpieczeństwa
- Usunięto użycie nieobsługiwanego znaku
SafetySetting.method
.
- Usunięto użycie nieobsługiwanego znaku
Dane w wierszu
- Usunięto użycie nieobsługiwanego znaku
InlineDataPart.videoMetadata
.
- Usunięto użycie nieobsługiwanego znaku
Dart
Wyliczenia
- Usunięto wartości z tych typów enumeracji:
HarmCategory
,HarmProbability
,BlockReason
iFinishReason
.
- Usunięto wartości z tych typów enumeracji:
Część dotycząca danych
- Zmieniliśmy nazwę funkcji
DataPart
naInlineDataPart
, a funkcjęstatic
data
nainlineData
, aby dostosować je do innych platform.
- Zmieniliśmy nazwę funkcji
Opcje żądania
- Usunięto
RequestOptions
, ponieważtimeout
nie działa. W najbliższej przyszłości zostanie ona ponownie dodana, ale zostanie przeniesiona do typuGenerativeModel
, aby była zgodna z innymi platformami.
- Usunięto
sekwencje zatrzymania,
- Zmieniono parametr
stopSequences
w plikuGenerationConfig
, tak aby był opcjonalny i domyślnie ustawiony nanull
zamiast pustej tablicy.
- Zmieniono parametr
Cytowania
- Nazwa właściwości
citationSources
została zmieniona nacitations
w plikuCitationMetadata
. TypCitationSource
został zmieniony naCitation
, aby był zgodny z innymi platformami.
- Nazwa właściwości
Niepotrzebne publiczne typy, metody i właściwości
- Usunięto te typy, metody i właściwości, które zostały niezamierzenie udostępnione:
defaultTimeout
,CountTokensResponseFields
,parseCountTokensResponse
,parseEmbedContentResponse
,parseGenerateContentResponse
,parseContent
,BatchEmbedContentsResponse
,ContentEmbedding
,EmbedContentRequest
iEmbedContentResponse
.
- Usunięto te typy, metody i właściwości, które zostały niezamierzenie udostępnione:
Liczba tokenów
- Usunięto z funkcji
countTokens
dodatkowe pola, które nie są już potrzebne. Wystarczy podać tylkocontents
.
- Usunięto z funkcji
Tworzenie wystąpienia modelu
- Parametr
systemInstruction
został przeniesiony na koniec listy parametrów, aby dostosować go do innych platform.
- Parametr
Funkcja umieszczania
- Usunięto z modelu nieobsługiwaną funkcję umieszczania (
embedContent
ibatchEmbedContents
).
- Usunięto z modelu nieobsługiwaną funkcję umieszczania (
Unity
Pomoc dotycząca Unity nie była dostępna w przypadku „Vertex AI in Firebase”.
Dowiedz się, jak rozpocząć korzystanie z pakietu SDK Firebase AI Logic 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 widzisz błąd 403 z wiadomością Requests to this API firebasevertexai.googleapis.com ... are blocked.
, oznacza to zwykle, że klucz interfejsu API Firebase w pliku konfiguracyjnym lub obiekcie Firebase nie ma na liście dozwolonych interfejsów API dla usługi, której próbujesz użyć.
Upewnij się, że klucz interfejsu API Firebase używany przez Twoją aplikację zawiera wszystkie wymagane interfejsy API uwzględnione na liście dozwolonych interfejsów API w sekcji „Ograniczenia interfejsu API” klucza. W przypadku Firebase AI Logic klucz interfejsu API Firebase musi zawierać co najmniej interfejs API Firebase AI Logic na liście dozwolonych. Ten interfejs API powinien zostać automatycznie dodany do listy dozwolonych kluczy API po włączeniu wymaganych interfejsów API w konsoli Firebase.
Wszystkie klucze interfejsu API znajdziesz w konsoli Google Cloud w panelu Interfejsy API i usługi > Dane logowania.
Przesyłanie opinii o usługachFirebase AI Logic