@capgo/capacitor-firebase-functions

June 16, 2026 · View on GitHub

Capgo - Instant updates for Capacitor

➡️ Get Instant updates for your App with Capgo

Missing a feature? We'll build the plugin for you 💪

Unofficial Capacitor plugin for Firebase Cloud Functions.1

Compatibility

Plugin VersionCapacitor VersionStatus
8.x.x>=8.x.xActive support
7.x.x7.x.xDeprecated

Installation

You can use our AI-Assisted Setup to install the plugin. Add the Capgo skills to your AI tool using the following command:

npx skills add https://github.com/cap-go/capacitor-skills --skill capacitor-plugins

Then use the following prompt:

Use the `capacitor-plugins` skill from `cap-go/capacitor-skills` to install the `@capgo/capacitor-firebase-functions` plugin in my project.

If you prefer Manual Setup, install the plugin by running the following commands and follow the platform-specific instructions below:

npm install @capgo/capacitor-firebase-functions
npx cap sync

Add Firebase to your project if you haven't already (Android / iOS).

Android

Variables

If needed, you can define the following project variable in your app’s variables.gradle file to change the default version of the dependency:

  • $firebaseFunctionsVersion version of com.google.firebase:firebase-functions (default: 22.1.0)

This can be useful if you encounter dependency conflicts with other plugins in your project.

Configuration

No configuration required for this plugin.

Demo

A working example can be found here: robingenz/capacitor-firebase-plugin-demo

Usage

import { FirebaseFunctions } from '@capgo/capacitor-firebase-functions';

const callByName = async () => {
    const { data } = await FirebaseFunctions.callByName({
        name: 'helloWorld',
        data: {
            string: 'Hello World!',
            number: 123,
            boolean: true,
            array: [1, 2, 3],
            object: {
                key: 'value'
            }
        }
    });
    return data;
};

const callByUrl = async () => {
    const { data } = await FirebaseFunctions.callByUrl({
        url: 'https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/helloWorld',
        data: {
            string: 'Hello World!',
            number: 123,
            boolean: true,
            array: [1, 2, 3],
            object: {
                key: 'value'
            }
        }
    });
    return data;
};

const useEmulator = async () => {
  await FirebaseFunctions.useEmulator({
    host: '10.0.2.2',
    port: 9001,
  });
};

API

callByName(...)

callByName<RequestData = unknown, ResponseData = unknown>(options: CallByNameOptions<RequestData>) => Promise<CallByNameResult<ResponseData>>

Call a callable function by name.

ParamType
optionsCallByNameOptions<RequestData>

Returns: Promise<CallByNameResult<ResponseData>>

Since: 6.1.0


callByUrl(...)

callByUrl<RequestData = unknown, ResponseData = unknown>(options: CallByUrlOptions<RequestData>) => Promise<CallByUrlResult<ResponseData>>

Call a callable function by URL.

ParamType
optionsCallByUrlOptions<RequestData>

Returns: Promise<CallByUrlResult<ResponseData>>

Since: 6.1.0


useEmulator(...)

useEmulator(options: UseEmulatorOptions) => Promise<void>

Instrument your app to talk to the Cloud Functions emulator.

On Android, the cleartext traffic must be allowed. On the Capacitor configuration:

{
  server: {
    cleartext: true
  }
}

The cleartext traffic is not intended for use in production.

ParamType
optionsUseEmulatorOptions

Since: 6.1.0


getPluginVersion()

getPluginVersion() => Promise<GetPluginVersionResult>

Get the version of this plugin.

Returns: Promise<GetPluginVersionResult>

Since: 8.0.1


Interfaces

CallResult

PropTypeDescriptionSince
dataResponseDataThe result of the callable function.6.1.0

CallByNameOptions

PropTypeDescriptionSince
namestringThe name of the callable function.6.1.0
regionstringThe region of the callable function.6.1.0

CallByUrlOptions

PropTypeDescriptionSince
urlstringThe URL of the callable function.6.1.0

UseEmulatorOptions

PropTypeDescriptionDefaultSince
hoststringThe emulator host without any port or scheme. Note when using a Android Emulator device: 10.0.2.2 is the special IP address to connect to the 'localhost' of the host computer.6.1.0
portnumberThe emulator port.50016.1.0
regionOrCustomDomainstringThe region the callable functions are located in or a custom domain hosting the callable functions.

GetPluginVersionResult

PropTypeDescriptionSince
versionstringThe semantic version of this plugin.8.0.1

Type Aliases

CallByNameResult

CallResult<ResponseData>

CallByUrlResult

CallResult<ResponseData>

Changelog

See CHANGELOG.md.

License

See LICENSE.

Footnotes

  1. This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries.