FirebaseAILogic Framework Reference

FirebaseAI

public final class FirebaseAI : Sendable

The Firebase AI SDK provides access to Gemini models directly from your app.

  • Creates an instance of FirebaseAI.

    Declaration

    Swift

    public static func firebaseAI(app: FirebaseApp? = nil,
                                  backend: Backend = .googleAI(),
                                  useLimitedUseAppCheckTokens: Bool = false) -> FirebaseAI

    Parameters

    app

    A custom FirebaseApp used for initialization; if not specified, uses the default FirebaseApp.

    backend

    The backend API for the Firebase AI SDK; if not specified, uses the default googleAI() (Gemini Developer API).

    useLimitedUseAppCheckTokens

    When sending tokens to the backend, this option enables the usage of App Check's limited-use tokens instead of the standard cached tokens. Learn more about limited-use tokens, including their nuances, when to use them, and best practices for integrating them into your app.

    Return Value

    A FirebaseAI instance, configured with the custom FirebaseApp.

  • Initializes a generative model with the given parameters.

    Note

    Refer to Gemini models for guidance on choosing an appropriate model for your use case.

    Declaration

    Swift

    public func generativeModel(modelName: String,
                                generationConfig: GenerationConfig? = nil,
                                safetySettings: [SafetySetting]? = nil,
                                tools: [GenerativeModel.Tool]? = nil,
                                toolConfig: ToolConfig? = nil,
                                systemInstruction: ModelContent? = nil,
                                requestOptions: RequestOptions = RequestOptions())
      -> GenerativeModel

    Parameters

    modelName

    The name of the model to use; see available model names for a list of supported model names.

    generationConfig

    The content generation parameters your model should use.

    safetySettings

    A value describing what types of harmful content your model should allow.

    tools

    A list of Tool objects that the model may use to generate the next response.

    toolConfig

    Tool configuration for any Tool specified in the request.

    systemInstruction

    Instructions that direct the model to behave a certain way; currently only text content is supported.

    requestOptions

    Configuration parameters for sending requests to the backend.

  • [Public Preview] Initializes a new TemplateGenerativeModel.

    Warning

    This API is a public preview and may be subject to change.

    Server prompt templates let you store prompts, schemas, tools, and configurations on the server, decoupling prompt iteration from app release cycles.

    Note

    If your Firebase project enforces template-only mode, all Gemini requests in the project must use server prompt templates via templateGenerativeModel; standard requests will be rejected with an unauthorized (403) error.

    Declaration

    Swift

    public func templateGenerativeModel(tools: [TemplateTool]? = nil,
                                        toolConfig: TemplateToolConfig? = nil,
                                        requestOptions: RequestOptions = RequestOptions())
      -> TemplateGenerativeModel

    Parameters

    tools

    An optional list of TemplateTools that the model may use to generate responses. Tools must be declared in the template's frontmatter. In client code, pass functionDeclarations(_:) to provide or override schema definitions for functions declared in the template, or googleMaps() to enable Grounding with Google Maps.

    toolConfig

    Tool configuration for tools specified in the request (such as providing a RetrievalConfig with user location and language code for Grounding with Google Maps).

    requestOptions

    Configuration parameters for sending requests to the backend.

    Return Value

    A new TemplateGenerativeModel instance.

  • [Public Preview] Initializes a LiveGenerativeModel with the given parameters.

    Note

    Refer to the Firebase docs on the Live API for guidance on choosing an appropriate model for your use case.

    Warning

    Using the Firebase AI Logic SDKs with the Gemini Live API is in Public Preview, which means that the feature is not subject to any SLA or deprecation policy and could change in backwards-incompatible ways.

    Declaration

    Swift

    @available(watchOS, unavailable)
    public func liveModel(modelName: String,
                          generationConfig: LiveGenerationConfig? = nil,
                          tools: [GenerativeModel.Tool]? = nil,
                          toolConfig: ToolConfig? = nil,
                          systemInstruction: ModelContent? = nil,
                          requestOptions: RequestOptions = RequestOptions()) -> LiveGenerativeModel

    Parameters

    modelName

    The name of the model to use.

    generationConfig

    The content generation parameters your model should use.

    tools

    A list of Tool objects that the model may use to generate the next response.

    toolConfig

    Tool configuration for any Tool specified in the request.

    systemInstruction

    Instructions that direct the model to behave a certain way; currently only text content is supported.

    requestOptions

    Configuration parameters for sending requests to the backend.