> [!WARNING]
> **Preview** : Using Firebase AI Logic to access the Gemini API through Apple's Foundation Models framework is currently in Preview, which means that it isn't subject to any SLA or deprecation policy and could change in backwards-incompatible ways.

<br />

|---|
| The examples on this page assume that you've completed the [Get started: Access the Gemini API through Apple's Foundation Models framework](https://firebase.google.com/docs/ai-logic/apple-foundation-models-framework/get-started.md.txt). |

<br />

You can provide Gemini built-in tools to Gemini models when
accessing the Gemini API through Apple's Foundation Models framework to
connect the model to external data sources.

The page shows you how to use the following built-in tools for
Gemini models:

- [Grounding with Google Search](https://firebase.google.com/docs/ai-logic/apple-foundation-models-framework/tools.md.txt#grounding-google-search)
- [Grounding with Google Maps](https://firebase.google.com/docs/ai-logic/apple-foundation-models-framework/tools.md.txt#grounding-google-maps)

## Grounding with Google Search

Grounding with Google Search connects a Gemini model to
real-time, publicly-available web content. This allows the model to provide
more accurate, up-to-date answers and cite verifiable sources.

For details, best practices, and use cases, see the general
[Grounding with Google Search](https://firebase.google.com/docs/ai-logic/grounding-google-search.md.txt)
guide.

#### Supported models

- `gemini-4-carbon`
- `gemini-4-argon`
- `gemini-3.8-flash`
- `gemini-3.5-flash-lite` (and the older `gemini-3.1-flash-lite`)
- `gemini-nano-banana-2.1` (Nano Banana 2.1)
- `gemini-3.1-flash-image` (Nano Banana 2)
- `gemini-3-pro-image` (Nano Banana Pro)

Older general-use Gemini 3.x Flash models support this capability, but
they're no longer recommended for use due to upcoming shutdown dates and/or
automatic routing to newer models.

### Enable the Google Search tool

Provide the `googleSearch` tool as part of creating the `geminiLanguageModel`:

```swift
import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(
  name: "GEMINI_MODEL_NAME",
  // Provide Google Search as a tool that the model can use to generate its response.
  serverTools: [GeminiTool.googleSearch()]
)

let session = LanguageModelSession(model: model)
let response = try await session.respond(to: "What is the weather in Toronto today?")
for entry in response.transcriptEntries {
  if case let .response(responseEntry) = entry {
    if let groundingMetadata = responseEntry
        .metadata["groundingMetadata"] as? GroundingMetadata {
      for chunk in groundingMetadata.groundingChunks {
        let webChunk = chunk.web
        // use the webChunk
      }
    }
  }
}

// Make sure to comply with the "Grounding with Google Search" usage requirements,
// which includes how you use and display the grounded result

```

> [!IMPORTANT]
> **Important:** If a response contains "Google Search suggestions" (the `searchEntryPoint` field within the `groundingMetadata` object), then that response is a "grounded result" so **you're required to comply with the
> "Grounding with Google Search" usage requirements, which includes how
> you display the result** . Learn how to [use and display a grounded result](https://firebase.google.com/docs/ai-logic/apple-foundation-models-framework/tools.md.txt#/docs/ai-logic/grounding-google-search#use-and-display-grounded-result)

## Grounding with Google Maps

Grounding with Google Maps connects a Gemini model to geospatial
data from Google Maps so that you can build location-aware functionality
into your apps.

For details, best practices, and use cases, see the general
[Grounding with Google Maps](https://firebase.google.com/docs/ai-logic/grounding-google-maps.md.txt)
guide.

#### Supported models

- `gemini-4-carbon`
- `gemini-4-argon`
- `gemini-3.8-flash`
- `gemini-3.5-flash-lite` (and the older `gemini-3.1-flash-lite`)

Older general-use Gemini 3.x Flash models support this capability, but
they're no longer recommended for use due to upcoming shutdown dates and/or
automatic routing to newer models.

### Enable the Google Maps tool

Provide the `googleMaps` tool as part of creating the `geminiLanguageModel`.
You can also optionally provide coordinates in the tool's configuration.

```swift
import FoundationModels
import FirebaseCore
import FirebaseAILogic

// Initialize the Gemini Developer API backend service.
let ai = FirebaseAI.firebaseAI(backend: .googleAI())
// Initialize a `geminiLanguageModel` with a Gemini model that supports your use case.
let model = ai.geminiLanguageModel(
  name: "GEMINI_MODEL_NAME",
  // Provide Google Maps as a tool that the model can use to generate its response.
  serverTools: [GeminiTool.googleMaps()]
)

let session = LanguageModelSession(model: model)

let response = try await session
      respond(to: "Where is a good place to grab a coffee near Alameda, CA?")

for entry in response.transcriptEntries {
  if case let .response(responseEntry) = entry {
    if let groundingMetadata = responseEntry
        .metadata["groundingMetadata"] as? GroundingMetadata {
      for chunk in groundingMetadata.groundingChunks {
        let mapsChunk = chunk.maps
        // use the mapsChunk
      }
    }
  }
}

// Make sure to comply with the "Grounding with Google Maps" usage requirements,
// which includes how you meet service usage requirements

```

> [!IMPORTANT]
> **Important:** If a response contains a `groundingMetadata` object, then that response is a *Google Maps Grounded Result* so **you're required to comply
> with the Grounding with Google Maps usage requirements, which includes how you
> display the result** . Learn how to [meet service usage requirements](https://firebase.google.com/docs/ai-logic/grounding-google-maps.md.txt#service-usage-requirements).

<br />

[**Give feedback**
about accessing the Gemini API through Apple's Foundation Models framework](https://github.com/firebase/firebase-ios-sdk/issues)

<br />