<!-- mobian-agent-page publisher="dailydev" canonical="https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd" -->

---
title: Building a cooking assistant with Firebase AI Logic
description: A walkthrough of building a real-time cooking assistant Android feature using Firebase AI Logic and the Gemini Live API. The tutorial covers setting up...
canonical: https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd
twitter:card: summary_large_image
twitter:site: @dailydotdev
og:type: website
og:site_name: daily.dev
og:title: Building a cooking assistant with Firebase AI Logic | daily.dev
og:description: A walkthrough of building a real-time cooking assistant Android feature using Firebase AI Logic and the Gemini Live API. The tutorial covers setting up...
og:url: https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd
og:image: https://api.daily.dev/og/posts/caQqJtYrd.png
og:image:alt: Building a cooking assistant with Firebase AI Logic
og:image:width: 1200
og:image:height: 630
og:locale: en
---

> ## Documentation Index
> Fetch the complete documentation index at: https://daily.dev/llms.txt
> Use this file to discover all available pages before exploring further.

# Building a cooking assistant with Firebase AI Logic

**[Firebase](https://daily.dev/sources/firebase-blog)** · 8 min read · 0 upvotes · 0 comments

## Summary

A walkthrough of building a real-time cooking assistant Android feature using Firebase AI Logic and the Gemini Live API. The tutorial covers setting up bidirectional video/audio streaming, storing model configuration in Firebase Remote Config, and implementing client-side function calling so the assistant can add missing ingredients to a grocery list. It also touches on securing the app for production with Firebase App Check.

## Full article

daily.dev links to this article rather than hosting it. Read it at the original source: <https://firebase.blog/posts/2026/05/building-cooking-assistant-ai-logic>

## Questions this post answers

### How do I let a Gemini Live model trigger actions in my Android app, like adding an item to a list?

Define a function declaration (a tool) with a name, description, and parameter schema, register it in the tools list when creating the LiveGenerativeModel, then handle the resulting FunctionCallPart in a session handler. When the model detects intent, it calls the function with extracted arguments, and the handler executes the action, such as inserting a GroceryItem into a database, and returns a FunctionResponsePart.

_daily.dev surfaces implementation patterns like this for developers wiring voice agents into real app state._

### How do I send a live video stream to a Gemini Live model from an Android app?

Capture bitmap frames, compress them to JPEG, and send them through liveSession.sendVideoRealtime with InlineData, throttling to one frame per second to conserve bandwidth. This requires CAMERA and RECORD_AUDIO permissions in AndroidManifest.xml, and a LiveGenerativeModel instance configured with a voice, response modality, and system instructions.

_Developers building real-time multimodal AI features can track patterns like this on daily.dev._

### Why should I use Firebase Remote Config to store my AI model's system prompt and model name?

Storing the prompt template and model name in Firebase Remote Config lets you update the model or its instructions on the server at any time without requiring users to install a new app version. The prompt template can include placeholders like {{title}} or {{ingredients}} that get filled in with recipe context at runtime.

_daily.dev helps developers stay current on patterns for iterating AI prompts without app releases._

## Similar posts on daily.dev

- [Build intelligent Android apps: Cloud and hybrid inference](https://daily.dev/posts/build-intelligent-android-apps-cloud-and-hybrid-inference-eyctih4y9) · Android Developers Blog · 0 upvotes · 0 comments
- [Serverless AI for Android with Firebase AI Logic](https://daily.dev/posts/serverless-ai-for-android-with-firebase-ai-logic-33d7pefc4) · ProAndroidDev · 0 upvotes · 0 comments
- [How to Build Production-Ready AI Features with Flutter \[Full Handbook for Devs\]](https://daily.dev/posts/how-to-build-production-ready-ai-features-with-flutter-full-handbook-for-devs--dvqqtnhpi) · freeCodeCamp · 3 upvotes · 0 comments

---

Tags: [#llm](https://daily.dev/tags/llm), [#android](https://daily.dev/tags/android), [#kotlin](https://daily.dev/tags/kotlin), [#firebase](https://daily.dev/tags/firebase)

[View this post on daily.dev](https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd)

```json
{"@context":"https://schema.org","@graph":[{"@type":"Organization","@id":"https://daily.dev/#organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180},"sameAs":["https://twitter.com/dailydotdev","https://github.com/dailydotdev","https://www.linkedin.com/company/daily-dev-ltd"]},{"@type":"WebSite","@id":"https://daily.dev/#website","url":"https://daily.dev","name":"daily.dev","publisher":{"@id":"https://daily.dev/#organization"},"potentialAction":{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https://daily.dev/search?q={search_term_string}"},"query-input":"required name=search_term_string"}}]}
{"@context":"https://schema.org","@type":"TechArticle","headline":"Building a cooking assistant with Firebase AI Logic","url":"https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd","mainEntityOfPage":{"@type":"WebPage","@id":"https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd"},"datePublished":"2026-08-23T12:18:52.527Z","dateModified":"2026-08-23T12:27:33.260Z","description":"A walkthrough of building a real-time cooking assistant Android feature using Firebase AI Logic and the Gemini Live API. The tutorial covers setting up...","image":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1a7446520e6fca536c39016e00fdb457?_a=AQAEuop","thumbnailUrl":"https://media.daily.dev/image/upload/f_auto,q_auto/v1/posts/1a7446520e6fca536c39016e00fdb457?_a=AQAEuop","isAccessibleForFree":true,"articleSection":"Firebase","inLanguage":"en","publisher":{"@type":"Organization","name":"daily.dev","url":"https://daily.dev","logo":{"@type":"ImageObject","url":"https://daily.dev/apple-touch-icon.png","width":180,"height":180}},"author":{"@type":"Organization","name":"Firebase","logo":"https://media.daily.dev/image/upload/s--i395oqZH--/f_auto,q_auto/v1787487448/logos/firebase-blog?_a=BAMAMicg0","url":"https://daily.dev/sources/firebase-blog"},"commentCount":0,"discussionUrl":"https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd","interactionStatistic":[{"@type":"InteractionCounter","interactionType":{"@type":"LikeAction"},"userInteractionCount":0},{"@type":"InteractionCounter","interactionType":{"@type":"CommentAction"},"userInteractionCount":0}],"keywords":"llm,android,kotlin,firebase","timeRequired":"PT8M"}
{"@context":"https://schema.org","@type":"BreadcrumbList","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https://daily.dev"},{"@type":"ListItem","position":2,"name":"Firebase","item":"https://daily.dev/sources/firebase-blog"},{"@type":"ListItem","position":3,"name":"Building a cooking assistant with Firebase AI Logic"}]}
{"@context":"https://schema.org","@type":"FAQPage","@id":"https://daily.dev/posts/building-a-cooking-assistant-with-firebase-ai-logic-caqqjtyrd#faq","mainEntity":[{"@type":"Question","name":"How do I let a Gemini Live model trigger actions in my Android app, like adding an item to a list?","acceptedAnswer":{"@type":"Answer","text":"Define a function declaration (a tool) with a name, description, and parameter schema, register it in the tools list when creating the LiveGenerativeModel, then handle the resulting FunctionCallPart in a session handler. When the model detects intent, it calls the function with extracted arguments, and the handler executes the action, such as inserting a GroceryItem into a database, and returns a FunctionResponsePart. daily.dev surfaces implementation patterns like this for developers wiring voice agents into real app state."}},{"@type":"Question","name":"How do I send a live video stream to a Gemini Live model from an Android app?","acceptedAnswer":{"@type":"Answer","text":"Capture bitmap frames, compress them to JPEG, and send them through liveSession.sendVideoRealtime with InlineData, throttling to one frame per second to conserve bandwidth. This requires CAMERA and RECORD_AUDIO permissions in AndroidManifest.xml, and a LiveGenerativeModel instance configured with a voice, response modality, and system instructions. Developers building real-time multimodal AI features can track patterns like this on daily.dev."}},{"@type":"Question","name":"Why should I use Firebase Remote Config to store my AI model's system prompt and model name?","acceptedAnswer":{"@type":"Answer","text":"Storing the prompt template and model name in Firebase Remote Config lets you update the model or its instructions on the server at any time without requiring users to install a new app version. The prompt template can include placeholders like {{title}} or {{ingredients}} that get filled in with recipe context at runtime. daily.dev helps developers stay current on patterns for iterating AI prompts without app releases."}}]}
```

