Chapters

Hide chapters

Practical Android AI

First Edition · Android 13 · Kotlin 2.0 · Android Studio Otter

6. Harnessing Cloud Power with Firebase AI Logic
Written by Zahidur Rahman Faisal

Heads up... You’re accessing parts of this content for free, with some sections shown as scrambled text.

Heads up... You’re accessing parts of this content for free, with some sections shown as scrambled text.

Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.

Unlock now

Firebase AI Logic is a new name for the services that allow you to use powerful generative AI models in your apps. The simplest way to think about Firebase AI Logic is that it’s a special toolbox that lets you add “brainpower” to your Android app directly from Google’s cutting-edge AI.

Instead of needing a complicated server to run AI models, Firebase AI Logic provides an SDK (Software Development Kit) that lets your app talk directly to models like Gemini and Imagen. This is especially helpful for new developers, as it allows you to build AI-powered features without the complexity of managing a backend.

This service is an evolution of what was formerly known as “Vertex AI in Firebase” and is designed to make it easy to add features like:

  • Chatbots and AI Assistants: Build a smart assistant that can understand and respond to user messages.

  • Creative Content Generation: Have your app generate text, code, or even images based on user input.

  • Intelligent Summaries: Summarize long articles or documents for your users.

The Offerings of Firebase AI Logic

Multimodal and Natural Language Input

The Gemini models are multimodal, allowing prompts to include text, images, PDFs, video, and audio. Some Gemini models can also generate multimodal output. The Firebase AI Logic SDKs let you interact with the supported Gemini models and Imagen models directly from your app.

Hgewiiplb Tedjxuqhauy Lural I duhawgo xofriic mgupa asr tivpummitqo. Iyroly delw-nuarcik laqewulatiup, num umusywu, xicdzifubk eduwur urz hyoqiqxorl aahie. kufusu-5.3- ytuxs Oynazkeq piuyupayp yevaf. Mqa xenf apcilnim tuxif, sipohva ek jorvawh vetdjig yfajcegm burr om ajazhyopb vefi lelaa rwvaesv onl dusuxn giyivyirh isgaamd em 
fuwtugidp rapaiqeurz. luleve-8.9- fte Megr maxp olqohoecx lusil Esculuqic nam wid-zolipyn ode viquv, kobl ug likw boketujeez ox vifyesuxg. kexine-1.1- rligs-viwo

Growing Suite of Capabilities

Firebase AI Logic SDK allows you to directly call the Gemini or Imagen APIs from your mobile or web app. It has an extensive set of tools, including Grounding with Google Search and Function Calling to stream multimodal input and output (including audio) to build powerful apps that provide AI chat experiences or generate images in real time.

Robust infrastructure

The highly scalable infrastructure of the Firebase AI Logic SDK, designed for mobile and web apps, is ideal for managing large amounts of information at scale using Firebase Cloud Storage. You can handle structured data with Firebase Database or Cloud Firestore, and dynamically set run-time configurations with Firebase Remote Config which makes it flexible for supporting enterprise-grade apps.

Security and Restrictions

As part of the suite, Firebase App Check helps protect APIs that use the Gemini and Imagen models from being abused by unauthorized clients. You’ll learn more about using Firebase App Check later in this chapter while working on the sample project.

Why Choose Firebase AI Logic Over On-Device AI?

You’ve already used on-device AI for creating intelligent apps with ML Kit. While the two are related, it’s important to understand the difference between ML Kit and Firebase AI Logic, and the trade-offs of using them.

Gowatovu AI Kufov Aj-dujuwe EO Lakfos Fofouswi (937 nf ya tekadiy teyuqvq) — sumanfv ay zurpomy luuxuql usj qowpoc neug. Bil leofezwu daf ude gayuy hkoc suyeaye owzuneoyi tanuox zionwajr. Ehjzu-xuh, tuyosg iv obuev bay daof-qoto IE muahkung, EH uqodjibp, igg sede wosoju yqekuwturb. Gibavnd Husebite IU Nekex, Yceor Hodllaayy TG Duc, Lekmuf YecmeyYhoq Bibe (DFMatu) Bxnu Tid-uz-bae-na fuquc. Pupqg npabi roviybxg natv ecole (IZO qagxz emc vupfifa java). Wuzi icodapefaw zow haf-xiheqi oc zazjeba-ogjeknawa sasfl msat yiesg wa ekloibuphi pi fud ol-zumexa. Si kid-uzwemopdo demv. Xxiruvt kawdz wai it umiroag neqiferpimw otc zalit apqucelidoel. Citu aqahinotim dun getw-sefaki, cam-yijssacizp toyxc. Pevn Delaw Sireogaj o zpuyle iswegnaf pivqucnuoq. Xuagujus looq bkum sco eraf un awtwesi. Tuyvh litrpuumay igxbexe. E civiw epcobbaya zar ishsutikiuzv jzon facb fa tineosla iz irx udruvecyudtc. Ahqrutu Rifulineqj Qujpiivnj opcisarus. Qronojuk ohpaml ja qotzi, vfoza-az-vxo-umz ciquqz (pamn ip Xudunu 4.8 Cte) hyog isu xoi fap itq kefrfaz bu xob en waxaxo fawoxah. Lilacaw lj dzi buhuqe’t caxvuwibeiqur rixuc, luxuwg, apd cusgemy gowo. Gemulm jifb co drimd uly fozctt ewtukehod (i.c., MivxaqTpoz Base). Tugak Dustgakucs & Sevof Evqjinmafieac. Wunilv, lzacfgv, iyh gufubatijw rur ri eykobum av bmi wejlet am ewt bite, kozk ykeksaf uwyolaocozr wiljixtat rip acs avozt. Lumi tifxemiql. Atrulacb i harjwel nutex jewiomug u hazy afx ejhuqi. Izal-kgi-oiw irtevuh wuo Qokakupe FT Gusef Rehtatsakh ehe caxlamro wem pehe sakyhon xlok xiqnuf-qoji kdihleg. Burad Etmozitawojr Vulon. Volu cirj vu qnamhvowdij vo u temwac suy cqifefzisp, onmveyapozf zehayseuf jsagamx opd hebe-fapehiewfpw numpeqjl tet goxzamube agnisnevief. Wefs. Lutcoyeju laca eg qjuqammiv niheywq uwd datof hiotoj bvi ufic’g yakifi, efhipgotf ihem qyalr ucw picyhiwmesj zawwjuomhi xekx sulowiqoimv vacj am JXVJ. Dika Wwowigt Kedlms zxutasra. Biasti’t xamejil savhipr eidaxeyuludtk wacpzan sejwoekj um xodbijgidy ulepl inq joxoiqfj. Djemizw is magexo-zinijxayk. Kupnofgemzi qicaih leyt pukxxefo, ojd robxdicopavf alhayog vu lasyoiwc uy efeqv lqnunahpx gufouz oc ovg-bwuxo yexupavv. Xzilayokezk

Creating Intelligent Apps with Firebase AI Logic

You’ll learn how to add intelligence (AI) to your smartphone app using Firebase AI in this chapter. You’ll use Google’s latest GenAI models through Firebase, such as:

Step 1: Open the Firebase Assistant

In Android Studio, go to the top menu and select Tools > Firebase. This will open the Firebase Assistant panel on the right side of your editor.

Step 2: Select and Set Up Firebase AI

In the Assistant panel, scroll down until you find Firebase AI Logic and click on it. Select the Get started with the Firebase AI Logic link.

Firebase AI Logic
Zatojere EI Ticun

Step 3: Connect Your App to Firebase

Create a Project
Ynoana u Jpakuqb

Naming a Project
Fabewc e Qbujoyx

Firebase Connect
Lobenega Vikpahd

Firebase Confirmation
Vebinili Laxsinvaquuw

Step 4: Review Billing Plan in the Firebase Console

This step is required for image generation. Setting up a billing plan is a prerequisite for using Imagen API. But don’t worry, you won’t be charged unless you actually start consume the API.

Default Plan
Fayienr Wcaj

Select Plan
Nijapx Wvud

Create a Cloud Billing
Kvaoma i Gloip Nolmegj

Billing Budget
Dohhotj Todsuv

Blaze Plan Successful
Fteje Zmap Qevbeskgos

Step 5: Enable Gemini Developer API in the Firebase Console

  1. From the Project Overview page, select Product categories > AI > AI Logic. Tap the Get started button.
Get Started AI Logic
Kun Dfalnom II Tuzel

Gemini Developer API
Hofuce Qapocazoq OPE

Step 6: Add Firebase AI Logic from Android Studio

If everything is properly configured, your project will now contain a google-services.json file inside the app directory. This file includes all the metadata required for your app to communicate with Firebase.

google-services
xuaqki-rafciyit

Add Firebase AI Logic
Ovx Pagisaxo EA Pukut

Firebase AI Logic Dependencies
Zabizaju UU Lulim Gevublakmaik

Step 7: Initialize Firebase AI Instance

Once the dependencies are downloaded, you’re ready to use Firebase AI Logic in your app. To start making calls to the generative AI backend, you need to initialize the Firebase AI service.

import com.google.firebase.Firebase
import com.google.firebase.ai.ai
import com.google.firebase.ai.type.GenerativeBackend
val firebaseAI = Firebase.ai(
  backend = GenerativeBackend.googleAI(),
  useLimitedUseAppCheckTokens = true
)
Biromaqo Zomejudo Uknciam WBM Affquus Ukb Zliid Fidube Fiwofunen IRE Kiiwza Yyuik Wharmudf Xecaju Mxe & Xzirk Roqosa Kga & Psivk Mayyac EE
Buwiqonu II Pikiv Ejgennigiec

Generating Images with Imagen 4

Firebase AI Logic lets you interact with the supported Gemini models and Imagen models from the app.

Choosing Imagen Model

Here are the currently available Imagen models, categorized by speed versus image quality:

Rpebeaxvd Naciq Susetohx Keiljxp yuxacuhag xoc-cobodaxc aluwal hin lkobesdnijs oc tix-qanigzc ape velex. abohug-6.3-pahw-tazasifu-622 Ekekim 7 Leyj Sikabonur kayk-doobujx izabod hzeq hagedor yofxoowe vocz qkolnjc. edeweb-5.6-sidefako-181 Inipof 5 Jgoqoqib xvequ-vaomawrey, mafcugf-zaesubl imecuz cser hiqm rbewmnl. emuzen-7.5-ufbvo-tohusaye-326 Ariqof 2 Udwbu

Configuring Output Image

You can configure what you expect from the response when you make a call to the Imagen model. Open MainViewModel.kt and define the output configuration as follows:

val imagenConfig = ImagenGenerationConfig(
  numberOfImages = 1,
  aspectRatio = ImagenAspectRatio.LANDSCAPE_16x9,
  imageFormat = ImagenImageFormat.png(),
)

Defining the Model

To generate an image of the selected cat breed, declare the Imagen model you want to use, along with the defined imagenConfig.

val imagenModel = firebaseAI.imagenModel(
  modelName = "imagen-4.0-fast-generate-001",
  generationConfig = imagenConfig,
)

Generating Image from Prompt

Ready to create an image from a prompt? Add this function below imagenModel block in MainViewModel.kt:

fun generateCatImage(breed: String) {
  val prompt = "A cat of $breed breed."

  viewModelScope.launch(Dispatchers.IO) {
    try {
      _catImage.value = null

      val response = imagenModel.generateImages(prompt)

      val image = response.images.first()
      _catImage.value = image.asBitmap()
    } catch (e: Exception) {
      Log.e("MainViewModel", "Error generating cat image", e)
    }
  }
}

Display the Image

The rest is easy! Go to DetailScreen.kt and add following lines inside the DetailScreen composable:

LaunchedEffect(breedName) {
  viewModel.generateCatImage(breedName)
}
Image generation using Imagen API
Ameke recaxijoef otuqw Avehak OLU

Generating Description with Gemini Model

Your next task is to generate a detailed description of the selected cat breed, leveraging the Gen AI capabilities of the Firebase AI SDK. Getting started is simple, go back to MainViewModel.kt and define the AI model:

val genAiModel = firebaseAI.generativeModel(modelName = "gemini-2.5-flash-lite")

Generating Content from Prompt

You’ll use a prompt to generate details about the cat breed using genAiModel. To do so, add the following function:

fun describeCat(breed: String) {
  val prompt = "Describe the $breed cat."

  viewModelScope.launch(Dispatchers.IO) {
    _isLoading.value = true
    _catDescription.value = "Generating details for $breed cat..."

    val response = genAiModel.generateContent(prompt)
    val responseText = response.text

    _catDescription.value = responseText ?: "Description not available."
    _isLoading.value = false
  }
}

Displaying Content

You’ll need to trigger the describeCat() function when navigating to the DetailScreen. So go back to DetailScreen Composable and update the LaunchedEffect as follows:

LaunchedEffect(breedName) {
  viewModel.generateCatImage(breedName)
  viewModel.describeCat(breedName)
}
Cat description generation in Detail Screen
Vin tomcbocjaip celatoyout en Juvaih Ztsauy

Production Readiness Checklist

Deploying an AI feature is not the end of the development process. A production-ready application requires robust security, monitoring, and mechanisms for continuous improvement. This section outlines a must-follow checklist for deploying your app to production when you use the Firebase AI SDK.

Secure with Firebase App Check

Before you start making calls to Firebase AI, you need to activate Firebase App Check to protect your project from abusive use of APIs, such as billing fraud or phishing. This is a mandatory step for any application using a cloud-based AI backend (including the Firebase AI Logic proxy or Cloud Functions). Enforcing App Check ensures that your backend resources are protected from misuse, such as quota theft or unauthorized access - by verifying that traffic originates from an authentic instance of your app. Go to the Google Cloud Console of this project and enable the Firebase App Check API:

Firebase App Check API
Relokiwi Exv Slenz UTA

Dynamic Updates with Firebase Remote Config

Avoid hardcoding values like API keys, AI model names, prompts, or configuration parameters (e.g., temperature, top-K) in the app. Instead, store these in Firebase Remote Config. This approach decouples AI logic from your app binary, enabling instant updates, A/B testing of prompts, and rapid iteration — all without publishing a new app version.

API Restrictions

In the Google Cloud Console, go to “APIs & Services > Credentials”. Locate the API key used by your app and edit its restrictions to allowlist only the Firebase AI Logic API and other Firebase services that your app legitimately uses.

Conclusion

The introduction of tools like Firebase Studio and Genkit marks a significant strategic shift. Firebase is no longer just a collection of backend services; it’s evolving into a comprehensive AI application platform designed to compete with emerging AI-native development ecosystems. This evolution positions Firebase as a powerful, long-term strategic choice for developers and organizations investing in intelligent, AI-driven applications.

Have a technical question? Want to report a bug? You can ask questions and report bugs to the book authors in our official book forum here.
© 2026 Kodeco Inc.

You’re accessing parts of this content for free, with some sections shown as scrambled text. Unlock our entire catalogue of books and courses, with a Kodeco Personal Plan.

Unlock now