Skip to content

@capacitor-firebase/functions

Unofficial Capacitor plugin for Firebase Cloud Functions.1

Installation

npm install @capacitor-firebase/functions
npx cap sync

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

Android

Variables

This plugin will use the following project variables (defined in your app’s variables.gradle file):

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

Configuration

No configuration required for this plugin.

Demo

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

Usage

import { FirebaseFunctions } from '@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.

Param Type
options CallByNameOptions<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.

Param Type
options CallByUrlOptions<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.

Param Type
options UseEmulatorOptions

Since: 6.1.0


Interfaces

CallResult

Prop Type Description Since
data ResponseData The result of the callable function. 6.1.0

CallByNameOptions

Prop Type Description Since
name string The name of the callable function. 6.1.0
region string The region of the callable function. 6.1.0

CallByUrlOptions

Prop Type Description Since
url string The URL of the callable function. 6.1.0

UseEmulatorOptions

Prop Type Description Default Since
host string 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. 6.1.0
port number The emulator port. 5001 6.1.0
regionOrCustomDomain string The region the callable functions are located in or a custom domain hosting the callable functions.

Type Aliases

CallByNameResult

CallResult<ResponseData>

CallByUrlResult

CallResult<ResponseData>

Changelog

See CHANGELOG.md.

License

See LICENSE.


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