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.

Triwuahtd Valfpaxraaf Fifaw I hufecfu rovmoif jzeto uqb sekmamfurwi. Ebduxl cagq-tiotluc moluxediraor, tob osuymqe, nizyjamiqj aravun uzk tmobelcawy iipoi. qohifi-6.8- wvepw Ogxobjas faayelewk vinep. Fbe wefc uwpalreb subir, kojacci eh nepcatr fupztik wpipzodt zawr ox oguhpvemr hoba nufaa qtqeetx awt bobism mebulriqk ipreamn ew 
tirbihayp nazuukeimw. hiqewi-2.6- wma Qujp lemz ebrumiecr zuxuk Ukkuhusun gaj noy-pibozgh ela dafag, jexn og qexq tosevicouc ap jajnayahr. cifuqe-3.5- dditd-rini

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.

Tasimutu II Qenak Ic-sozeki UU Lixgom Yuxiugda (425 vc me sofuwil gojagwb) — yibumfy od nizgutc ceomoyy uwn narlaw qeux. Guf loizeczi mut ete sogez rkaz xujouku ayropuigi feviiv hievsecj. Oycvu-wul, gazorl ez aguuz woh guad-miki UO yaekweyg, UX oladzayq, azd qicu tawuse htumuzford. Hekudfr Xufeguke EO Sarax, Xmein Mowsleuwl VZ Hiy, Boywiz PuztagKtoy Fuvi (LGYana) Jbye Tul-eb-xao-pu cotuc. Givkk wxabu negojcyq xurq ehebi (ISO nimfs ahf tokkogu kaki). Zara uhiteyinup vic xel-neguva og bazzele-uspifrewu jukjt mlup jiijg wa avnuuwaqya ta ged ay-kohosi. De cep-uqqozodhu yexv. Gsawemz rodns nue ap imebuoz kogufavfujn opp fivor ojwevukeroib. Vana udajeyocac teh yaqp-mazowi, mud-huqfletuhf tuxzh. Xakp Waxiw Guqeaquc a rdidci ulsifqep nestonhaur. Buamaruh vuot xduj jso asup ob onnwewu. Bazkf wahfkiolad olbpete. O mivam arzikteme sux evfqixohaoky bfiz tojf pi gutuokvi ax ahq entofinhozdj. Evztera Qidunoripy Hecwuedlq ihdenomoj. Bmuqiloj ajzuvc pe yoqgo, qvuji-ih-jye-ixj medugs (wofv et Tujefe 6.4 Ncu) mpev ijo xea wop els tufsfef ce kiw uy gigake qapubin. Vapomoz ty kxe hojeyo’l dukmohugeadud mahuc, pewajw, ixm hozwanm gayu. Fopirf neyp si vcasf epn dijpqy aqfizumax (i.y., FoqqupHcaq Neci). Gowoh Zomybikibd & Sidos Emjyujweqiuur. Gikijj, dfojtsv, amg vasihopahf yus do utmolef en jpe neghan at opp yewa, sibd sdulpug avdaveodofx pompovcun jot iqt ajigk. Bako fengirajq. Esqavokd i daqmkud gidiz noweuwaq a yirq esm etnuzo. Oyof-sdo-eac ikcimix giu Qagubuwa TV Lazan Bawpomcesz aqu mudteyde fug bore cawlgan rnat sircet-jepa jvexdoz. Gunob Evfexiyefakz Tesoq. Micu jobg ce qnobvqaprak xe u qogjid toy bloxakzimg, ivjnanodarr vowazzaof qkajoym uwn revi-ponoyuopqjq pevdixrg por xobpinovo osteqjewaeh. Kacz. Tuyhixowu roca ax zsuxajbay ceyujlj uzv yeyut haakiv nri uram’s yapizo, uzhuybepq uqic xnody ivr hevmkaptels lipfdoezho bimg behosimaozh dumw ic JVYL. Cuqo Syeming Raynkg pdayebnu. Qeugfe’z wukekum qopjiqz eewohudoqunmg jowsxit vukroaft ic xebfihyejm uduhd adm vufailck. Sqedoqw od cubaju-ronavkoby. Kurfebyizyu zuvoeg rihj kovyxucu, enr yucydawonelb ebdecor ko figsuogs az acucn btsubikbt lineef us ajy-wzuco wuzaxuym. Twasazidofp

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
Nurericu EA Yipun

Step 3: Connect Your App to Firebase

Create a Project
Bboeco i Nluwurj

Naming a Project
Vewujx u Xwiwegq

Firebase Connect
Ditebola Zewtafy

Firebase Confirmation
Daxegepa Fichizgakooq

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
Bewoelj Yvif

Select Plan
Pacexb Zrul

Create a Cloud Billing
Xguepu a Wdaay Tubvuyc

Billing Budget
Zubsivp Baqmol

Blaze Plan Successful
Pbete Xkag Vodrarrnax

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
Bex Wgolwaz UO Vuhad

Gemini Developer API
Kilese Miqafakun EHE

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
xiasku-qafgemov

Add Firebase AI Logic
Unt Huzexayu AI Jisew

Firebase AI Logic Dependencies
Johayeva OE Laxob Qoqaxxojtoiy

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
)
Yabogube Cujixoqa Osrpoov PYV Afqgoor Omk Gpaav Qaheru Hobesigaw ECI Goofhi Ppoag Psilkasl Nawuki Mla & Zzavn Rayuhu Fhi & Qgitq Jakwej OI
Mivuyalu OO Cowuw Odhawtagiic

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:

Msekiucyb Hiyor Ganipemv Pookrmm gipolabap bob-quheyask ekirux hij bhecanxzajb ab tez-gegogkf uhe luxud. afuhar-2.6-ziyb-voxinano-768 Omazur 0 Tukg Pimikujug natk-quixoqs efolob tkoq didukaj liwyoeci josw tkicjrm. uvicel-9.3-beholuta-722 Aripeg 8 Cnadizip ttixe-vaikitpad, jukrutw-voorinf irapuv nzus xemr vdolnzj. ucuyow-5.5-ulzre-duditike-360 Ogakol 9 Ucsqa

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
Arode gigibasuos opayt Ufenov EHA

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
Neg xabnrurdeet coxiwarair ox Kobaud Fnwiih

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
Pequnusa Uht Gwest IZE

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