Skip to content

Getting Started

Terminal window
bun add @capgo/capacitor-firebase-functions
bunx cap sync
import { FirebaseFunctions } from '@capgo/capacitor-firebase-functions';

Call a callable function by name.

import { FirebaseFunctions } from '@capgo/capacitor-firebase-functions';
await FirebaseFunctions.callByName({} as CallByNameOptions<RequestData>);

Call a callable function by URL.

import { FirebaseFunctions } from '@capgo/capacitor-firebase-functions';
await FirebaseFunctions.callByUrl({} as CallByUrlOptions<RequestData>);

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.

import { FirebaseFunctions } from '@capgo/capacitor-firebase-functions';
await FirebaseFunctions.useEmulator({} as UseEmulatorOptions);
export interface CallByNameOptions<RequestData = unknown> extends CallOptions<RequestData> {
/**
* The name of the callable function.
*
* @example 'myFunction'
* @since 6.1.0
*/
name: string;
/**
* The region of the callable function.
*
* @example 'us-central1'
* @since 6.1.0
*/
region?: string;
}
export type CallByNameResult<ResponseData = unknown> = CallResult<ResponseData>;
export interface CallByUrlOptions<RequestData = unknown> extends CallOptions<RequestData> {
/**
* The URL of the callable function.
*
* @example 'https://us-central1-my-project.cloudfunctions.net/myFunction'
* @since 6.1.0
*/
url: string;
}
export type CallByUrlResult<ResponseData = unknown> = CallResult<ResponseData>;
export interface UseEmulatorOptions {
/**
* The 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.
*
* @since 6.1.0
* @example "127.0.0.1"
*/
host: string;
/**
* The emulator port.
*
* @since 6.1.0
* @default 5001
* @example 5001
*/
port?: number;
/**
* The region the callable functions are located in or a custom domain hosting the callable functions.
*
* @example 'us-central1'
* @example 'https://mydomain.com'
*/
regionOrCustomDomain?: string;
}
export interface GetPluginVersionResult {
/**
* The semantic version of this plugin.
*
* @since 8.0.1
*/
version: string;
}
export interface CallResult<ResponseData = unknown> {
/**
* The result of the callable function.
*
* @since 6.1.0
*/
data: ResponseData;
}

This page is generated from the plugin’s src/definitions.ts. Re-run the sync when the public API changes upstream.

If you are using Getting Started to plan dashboard and API operations, connect it with API Overview for the implementation detail in API Overview, Introduction for the implementation detail in Introduction, API Keys for the implementation detail in API Keys, Devices for the implementation detail in Devices, and Bundles for the implementation detail in Bundles.