---
description: Unofficial Capacitor plugin for Firebase Cloud Functions SDK to call backend functions in your app with support for Android, iOS, and Web.
title: Capacitor Firebase Cloud Functions Plugin - Capawesome
image: https://capawesome.io/docs/assets/images/social/sdks/capacitor/firebase/cloud-functions.png
---

<!doctype html> 

[Skip to content ](#capacitor-firebasefunctions) 

[🔐 Introducing the **Capacitor Vault** plugin — store secrets behind biometrics or a device passcode. ](/blog/announcing-the-capacitor-vault-plugin/) 

* [ SDKs ](/docs/sdks/)
* [ iOS ](#ios)
* [ Configuration ](#configuration)
* [ Demo ](#demo)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)
* [ Cloud Messaging ](/docs/sdks/capacitor/firebase/cloud-messaging/)
* [ Cloud Storage ](/docs/sdks/capacitor/firebase/cloud-storage/)
* [ Performance Monitoring ](/docs/sdks/capacitor/firebase/performance-monitoring/)
* [ Remote Config ](/docs/sdks/capacitor/firebase/remote-config/)
* [ Formbricks ](/docs/sdks/capacitor/formbricks/)
* [ Geocoder ](/docs/sdks/capacitor/geocoder/)
* [ Google Sign-In ](/docs/sdks/capacitor/google-sign-in/)
* [ Grafana Faro ](/docs/sdks/capacitor/grafana-faro/)
* [ Gyroscope ](/docs/sdks/capacitor/gyroscope/)
* [ Haptics ](/docs/sdks/capacitor/haptics/)
* [ Home Indicator ](/docs/sdks/capacitor/home-indicator/)
* [ In-App Browser ](/docs/sdks/capacitor/in-app-browser/)
* [ Install Referrer ](/docs/sdks/capacitor/install-referrer/)
* [ Keep Awake ](/docs/sdks/capacitor/keep-awake/)
* [ libSQL ](/docs/sdks/capacitor/libsql/)
* [ Light Sensor ](/docs/sdks/capacitor/light-sensor/)
* [ Live Update ](/docs/sdks/capacitor/live-update/)
* [ Localization ](/docs/sdks/capacitor/localization/)
* [ Mail Composer ](/docs/sdks/capacitor/mail-composer/)
* [ Managed Configurations ](/docs/sdks/capacitor/managed-configurations/)
* [ Maps Launcher ](/docs/sdks/capacitor/maps-launcher/)
* [ Media Session ](/docs/sdks/capacitor/media-session/)
* [ ML Kit ](/docs/sdks/capacitor/mlkit/)
* [ Navigation Bar ](/docs/sdks/capacitor/navigation-bar/)
* [ Network ](/docs/sdks/capacitor/network/)
* [ NFC ](/docs/sdks/capacitor/nfc/)
* [ Node.js ](/docs/sdks/capacitor/nodejs/)
* [ OAuth ](/docs/sdks/capacitor/oauth/)
* [ Passkeys ](/docs/sdks/capacitor/passkeys/)
* [ Password Autofill ](/docs/sdks/capacitor/password-autofill/)
* [ PDF Generator ](/docs/sdks/capacitor/pdf-generator/)
* [ PDF Viewer ](/docs/sdks/capacitor/pdf-viewer/)
* [ Pedometer ](/docs/sdks/capacitor/pedometer/)
* [ Permissions ](/docs/sdks/capacitor/permissions/)
* [ Phone Dialer ](/docs/sdks/capacitor/phone-dialer/)
* [ Photo Editor ](/docs/sdks/capacitor/photo-editor/)
* [ Photo Manipulator ](/docs/sdks/capacitor/photo-manipulator/)
* [ PixLive ](/docs/sdks/capacitor/pixlive/)
* [ PostHog ](/docs/sdks/capacitor/posthog/)
* [ Printer ](/docs/sdks/capacitor/printer/)
* [ Privacy Screen ](/docs/sdks/capacitor/privacy-screen/)
* [ Proximity Sensor ](/docs/sdks/capacitor/proximity-sensor/)
* [ Purchases ](/docs/sdks/capacitor/purchases/)
* [ RealtimeKit ](/docs/sdks/capacitor/realtimekit/)
* [ Root Detection ](/docs/sdks/capacitor/root-detection/)
* [ Screen Brightness ](/docs/sdks/capacitor/screen-brightness/)
* [ Screen Orientation ](/docs/sdks/capacitor/screen-orientation/)
* [ Screen Reader ](/docs/sdks/capacitor/screen-reader/)
* [ Screenshot ](/docs/sdks/capacitor/screenshot/)
* [ Secure Preferences ](/docs/sdks/capacitor/secure-preferences/)
* [ Settings Launcher ](/docs/sdks/capacitor/settings-launcher/)
* [ Shake ](/docs/sdks/capacitor/shake/)
* [ Silent Mode ](/docs/sdks/capacitor/silent-mode/)
* [ SIM ](/docs/sdks/capacitor/sim/)
* [ SMS Composer ](/docs/sdks/capacitor/sms-composer/)
* [ Speech Recognition ](/docs/sdks/capacitor/speech-recognition/)
* [ Speech Synthesis ](/docs/sdks/capacitor/speech-synthesis/)
* [ Share Target ](/docs/sdks/capacitor/share-target/)
* [ Square Mobile Payments ](/docs/sdks/capacitor/square-mobile-payments/)
* [ SQLite ](/docs/sdks/capacitor/sqlite/)
* [ Superwall ](/docs/sdks/capacitor/superwall/)
* [ System WebView ](/docs/sdks/capacitor/system-webview/)
* [ Text Interaction ](/docs/sdks/capacitor/text-interaction/)
* [ Text Zoom ](/docs/sdks/capacitor/text-zoom/)
* [ Thermal State ](/docs/sdks/capacitor/thermal-state/)
* [ Toast ](/docs/sdks/capacitor/toast/)
* [ Torch ](/docs/sdks/capacitor/torch/)
* [ Vault ](/docs/sdks/capacitor/vault/)
* [ Volume ](/docs/sdks/capacitor/volume/)
* [ Wallet ](/docs/sdks/capacitor/wallet/)
* [ Wifi ](/docs/sdks/capacitor/wifi/)
* [ Zip ](/docs/sdks/capacitor/zip/)
* [ Cordova ](/docs/sdks/cordova/)
* [ Cloud ](/docs/cloud/)
* [ Integrations ](/docs/cloud/live-updates/integrations/)
* Concepts
* Reference
* [ Troubleshooting ](/docs/cloud/live-updates/troubleshooting/)
* [ FAQ ](/docs/cloud/live-updates/faq/)
* [ Native Builds ](/docs/cloud/native-builds/)
* [ Set Up Environments ](/docs/cloud/native-builds/environments/)
* [ Overwrite Native Configurations ](/docs/cloud/native-builds/native-configurations/)
* [ Auto-Increment Build Numbers ](/docs/cloud/native-builds/auto-incrementing-build-numbers/)
* [ Configure the Web Build Script ](/docs/cloud/native-builds/web-build-script/)
* [ Build from a Monorepo ](/docs/cloud/native-builds/monorepo/)
* [ Use pnpm, Yarn, or bun ](/docs/cloud/native-builds/package-managers/)
* [ Install Private npm Packages ](/docs/cloud/native-builds/npm-private-registry/)
* [ Override the Java Version ](/docs/cloud/native-builds/override-java-version/)
* [ Custom iOS Provisioning Profiles ](/docs/cloud/native-builds/custom-ios-provisioning-profiles/)
* [ Build without Git ](/docs/cloud/native-builds/build-without-git/)
* [ Access Git Behind a Firewall ](/docs/cloud/native-builds/firewall-access/)
* [ Integrations ](/docs/cloud/native-builds/integrations/)
* Reference
* [ Troubleshooting ](/docs/cloud/native-builds/troubleshooting/)
* [ FAQ ](/docs/cloud/native-builds/faq/)
* [ App Store Publishing ](/docs/cloud/app-store-publishing/)
* [ Submit a Build ](/docs/cloud/app-store-publishing/submit-a-build/)
* [ Submit Automatically After a Build ](/docs/cloud/app-store-publishing/submit-automatically/)
* [ Troubleshooting ](/docs/cloud/app-store-publishing/troubleshooting/)
* [ FAQ ](/docs/cloud/app-store-publishing/faq/)
* [ Automations ](/docs/cloud/automations/)
* [ Reference ](/docs/cloud/automations/reference/)
* [ Troubleshooting ](/docs/cloud/automations/troubleshooting/)
* [ FAQ ](/docs/cloud/automations/faq/)
* [ Assist ](/docs/cloud/assist/)
* [ CLI ](/docs/cloud/cli/)
* APIs and SDKs
* [ Webhooks ](/docs/cloud/webhooks/)
* [ Integrations ](/docs/cloud/integrations/)
* Account
* [ Organization ](/docs/cloud/organizations/)
* [ Two-Factor Enforcement ](/docs/cloud/organizations/two-factor-authentication/)
* [ Audit Logs ](/docs/cloud/organizations/audit-logs/)
* [ Billing ](/docs/cloud/organizations/billing/)
* [ License Keys ](/docs/cloud/license-keys/)
* [ AI ](/docs/ai/)
* [ Insiders ](/docs/insiders/)
* [ Billing & Plans ](/docs/insiders/billing-and-plans/)
* [ FAQ ](/docs/insiders/faq/)
* [ License ](https://capawesome.io/legal/eula/)
* [ Support ](/docs/support/)
* [ Contributing ](/docs/contributing/)
* Contributing code
* [ Code of Conduct ](/docs/contributing/code-of-conduct/)
* [ Questions ](https://docs.github.com/en/discussions/collaborating-with-your-community-using-discussions/participating-in-a-discussion#creating-a-discussion)
* [ Blog ](/blog/)
* Categories

* [ iOS ](#ios)
* [ Configuration ](#configuration)
* [ Demo ](#demo)
* [ Usage ](#usage)
* [ API ](#api)
* [ Type Aliases ](#type-aliases)
* [ FAQ ](#faq)
* [ Related Plugins ](#related-plugins)
* [ Newsletter ](#newsletter)
* [ Changelog ](#changelog)
* [ License ](#license)

# @capacitor-firebase/functions[¶](#capacitor-firebasefunctions "Permanent link")

Unofficial Capacitor plugin for [Firebase Cloud Functions](https://firebase.google.com/docs/functions/).[1](#fn:1)

[ ![Deliver Live Updates to your Capacitor app with Capawesome Cloud](../../../../assets/external/cloud.capawesome.io/assets/banners/cloud-build-and-deploy-capacitor-apps.69628c3f.png) ](https://cloud.capawesome.io/) 

## Use Cases[¶](#use-cases "Permanent link")

The Firebase Cloud Functions plugin is typically used to run backend logic from your Capacitor app without managing your own server, for example:

* **Serverless backend logic**: Call callable Cloud Functions by name to run trusted server-side code from your app.
* **Structured data exchange**: Pass strings, numbers, booleans, arrays, and objects to a function and process the returned result.
* **Custom domains and regions**: Call functions that are deployed in a specific region or hosted on a custom domain by their URL.
* **Local development**: Test your functions against the Cloud Functions emulator before deploying them to production.

## Compatibility[¶](#compatibility "Permanent link")

| Plugin Version | Capacitor Version | Status         |
| -------------- | ----------------- | -------------- |
| 8.x.x          | \>=8.x.x          | Active support |
| 7.x.x          | 7.x.x             | Deprecated     |

## Installation[¶](#installation "Permanent link")

You can use our **AI-Assisted Setup** to install the plugin. Add the [Capawesome Skills](https://github.com/capawesome-team/skills) to your AI tool using the following command:

`[](#%5F%5Fcodelineno-0-1)npx skills add capawesome-team/skills --skill capacitor-plugins
`

Then use the following prompt:

`` [](#%5F%5Fcodelineno-1-1)Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@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:

`[](#%5F%5Fcodelineno-2-1)npm install @capacitor-firebase/functions
[](#%5F%5Fcodelineno-2-2)npx cap sync
`

Add Firebase to your project if you haven't already ([Android](https://firebase.google.com/docs/android/setup) / [iOS](https://firebase.google.com/docs/ios/setup)).

### Android[¶](#android "Permanent link")

#### Variables[¶](#variables "Permanent link")

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.

### iOS[¶](#ios "Permanent link")

#### Swift Package Manager[¶](#swift-package-manager "Permanent link")

Add the following to your `capacitor.config.json` (or `capacitor.config.ts`) to avoid a [SwiftPM package identity collision](https://github.com/capawesome-team/capacitor-firebase/issues/959):

`[](#%5F%5Fcodelineno-3-1){
[](#%5F%5Fcodelineno-3-2)  "experimental": {
[](#%5F%5Fcodelineno-3-3)    "ios": {
[](#%5F%5Fcodelineno-3-4)      "spm": {
[](#%5F%5Fcodelineno-3-5)        "packageOptions": {
[](#%5F%5Fcodelineno-3-6)          "@capacitor-firebase/functions": {
[](#%5F%5Fcodelineno-3-7)            "symlink": true
[](#%5F%5Fcodelineno-3-8)          }
[](#%5F%5Fcodelineno-3-9)        }
[](#%5F%5Fcodelineno-3-10)      }
[](#%5F%5Fcodelineno-3-11)    }
[](#%5F%5Fcodelineno-3-12)  }
[](#%5F%5Fcodelineno-3-13)}
`

**Attention**: SPM `packageOptions` support requires Capacitor CLI **8.4.0+**.

## Configuration[¶](#configuration "Permanent link")

No configuration required for this plugin.

## Demo[¶](#demo "Permanent link")

A working example can be found here: [robingenz/capacitor-firebase-plugin-demo](https://github.com/robingenz/capacitor-firebase-plugin-demo)

## Usage[¶](#usage "Permanent link")

The following examples show how to call Cloud Functions by name or by URL and how to connect to the Cloud Functions emulator.

### Call a function by name[¶](#call-a-function-by-name "Permanent link")

Call a callable Cloud Function by its name. You can pass strings, numbers, booleans, arrays, and objects as data and receive the result of the function in the `data` property. Use the `region` option if your function is not deployed in the default region:

`[](#%5F%5Fcodelineno-4-1)import { FirebaseFunctions } from '@capacitor-firebase/functions';
[](#%5F%5Fcodelineno-4-2)
[](#%5F%5Fcodelineno-4-3)const callByName = async () => {
[](#%5F%5Fcodelineno-4-4)    const { data } = await FirebaseFunctions.callByName({
[](#%5F%5Fcodelineno-4-5)        name: 'helloWorld',
[](#%5F%5Fcodelineno-4-6)        data: {
[](#%5F%5Fcodelineno-4-7)            string: 'Hello World!',
[](#%5F%5Fcodelineno-4-8)            number: 123,
[](#%5F%5Fcodelineno-4-9)            boolean: true,
[](#%5F%5Fcodelineno-4-10)            array: [1, 2, 3],
[](#%5F%5Fcodelineno-4-11)            object: {
[](#%5F%5Fcodelineno-4-12)                key: 'value'
[](#%5F%5Fcodelineno-4-13)            }
[](#%5F%5Fcodelineno-4-14)        }
[](#%5F%5Fcodelineno-4-15)    });
[](#%5F%5Fcodelineno-4-16)    return data;
[](#%5F%5Fcodelineno-4-17)};
`

### Call a function by URL[¶](#call-a-function-by-url "Permanent link")

If your callable function is hosted on a custom domain or you prefer to address it directly, call it by its URL:

`[](#%5F%5Fcodelineno-5-1)import { FirebaseFunctions } from '@capacitor-firebase/functions';
[](#%5F%5Fcodelineno-5-2)
[](#%5F%5Fcodelineno-5-3)const callByUrl = async () => {
[](#%5F%5Fcodelineno-5-4)    const { data } = await FirebaseFunctions.callByUrl({
[](#%5F%5Fcodelineno-5-5)        url: 'https://us-central1-YOUR_PROJECT_ID.cloudfunctions.net/helloWorld',
[](#%5F%5Fcodelineno-5-6)        data: {
[](#%5F%5Fcodelineno-5-7)            string: 'Hello World!',
[](#%5F%5Fcodelineno-5-8)            number: 123,
[](#%5F%5Fcodelineno-5-9)            boolean: true,
[](#%5F%5Fcodelineno-5-10)            array: [1, 2, 3],
[](#%5F%5Fcodelineno-5-11)            object: {
[](#%5F%5Fcodelineno-5-12)                key: 'value'
[](#%5F%5Fcodelineno-5-13)            }
[](#%5F%5Fcodelineno-5-14)        }
[](#%5F%5Fcodelineno-5-15)    });
[](#%5F%5Fcodelineno-5-16)    return data;
[](#%5F%5Fcodelineno-5-17)};
`

### Use the Cloud Functions emulator[¶](#use-the-cloud-functions-emulator "Permanent link")

During development, you can instrument your app to talk to the local Cloud Functions emulator. When using an Android emulator device, `10.0.2.2` is the special IP address to connect to the `localhost` of the host computer. Note that on Android, the cleartext traffic must be allowed, which is not intended for use in production:

`[](#%5F%5Fcodelineno-6-1)import { FirebaseFunctions } from '@capacitor-firebase/functions';
[](#%5F%5Fcodelineno-6-2)
[](#%5F%5Fcodelineno-6-3)const useEmulator = async () => {
[](#%5F%5Fcodelineno-6-4)  await FirebaseFunctions.useEmulator({
[](#%5F%5Fcodelineno-6-5)    host: '10.0.2.2',
[](#%5F%5Fcodelineno-6-6)    port: 9001,
[](#%5F%5Fcodelineno-6-7)  });
[](#%5F%5Fcodelineno-6-8)};
`

## API[¶](#api "Permanent link")

* [callByName(...)](#callbyname)
* [callByUrl(...)](#callbyurl)
* [useEmulator(...)](#useemulator)
* [Interfaces](#interfaces)
* [Type Aliases](#type-aliases)

### callByName(...)[¶](#callbyname "Permanent link")

`[](#%5F%5Fcodelineno-7-1)callByName<RequestData = unknown, ResponseData = unknown>(options: CallByNameOptions<RequestData>) => Promise<CallByNameResult<ResponseData>>
`

Call a callable function by name.

| Param       | Type                                                 |
| ----------- | ---------------------------------------------------- |
| **options** | [CallByNameOptions](#callbynameoptions)<RequestData> |

**Returns:** `Promise<[CallByNameResult](#callbynameresult)<ResponseData>>`

**Since:** 6.1.0

---

### callByUrl(...)[¶](#callbyurl "Permanent link")

`[](#%5F%5Fcodelineno-8-1)callByUrl<RequestData = unknown, ResponseData = unknown>(options: CallByUrlOptions<RequestData>) => Promise<CallByUrlResult<ResponseData>>
`

Call a callable function by URL.

| Param       | Type                                               |
| ----------- | -------------------------------------------------- |
| **options** | [CallByUrlOptions](#callbyurloptions)<RequestData> |

**Returns:** `Promise<[CallByUrlResult](#callbyurlresult)<ResponseData>>`

**Since:** 6.1.0

---

### useEmulator(...)[¶](#useemulator "Permanent link")

`[](#%5F%5Fcodelineno-9-1)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: 

`[](#%5F%5Fcodelineno-10-1){
[](#%5F%5Fcodelineno-10-2)  server: {
[](#%5F%5Fcodelineno-10-3)    cleartext: true
[](#%5F%5Fcodelineno-10-4)  }
[](#%5F%5Fcodelineno-10-5)}
`

**The cleartext traffic is not intended for use in production.** 

| Param       | Type                                      |
| ----------- | ----------------------------------------- |
| **options** | [UseEmulatorOptions](#useemulatoroptions) |

**Since:** 6.1.0

---

### Interfaces[¶](#interfaces "Permanent link")

#### CallResult[¶](#callresult "Permanent link")

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

#### CallByNameOptions[¶](#callbynameoptions "Permanent link")

| 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[¶](#callbyurloptions "Permanent link")

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

#### UseEmulatorOptions[¶](#useemulatoroptions "Permanent link")

| 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[¶](#type-aliases "Permanent link")

#### CallByNameResult[¶](#callbynameresult "Permanent link")

`[CallResult](#callresult)<ResponseData>`

#### CallByUrlResult[¶](#callbyurlresult "Permanent link")

`[CallResult](#callresult)<ResponseData>`

## FAQ[¶](#faq "Permanent link")

### What is the difference between `callByName` and `callByUrl`?[¶](#what-is-the-difference-between-callbyname-and-callbyurl "Permanent link")

The `callByName(...)` method calls a callable function by its name and, optionally, its region. The `callByUrl(...)` method calls a callable function by its full URL instead, which is useful if the function is hosted on a custom domain.

### What data types can I pass to a callable function?[¶](#what-data-types-can-i-pass-to-a-callable-function "Permanent link")

You can pass strings, numbers, booleans, arrays, and nested objects as data to a callable function. The result of the function is returned in the `data` property of the call result.

### How do I test my functions locally?[¶](#how-do-i-test-my-functions-locally "Permanent link")

Use the `useEmulator(...)` method to instrument your app to talk to the local Cloud Functions emulator, as shown in the [usage example](#use-the-cloud-functions-emulator) above. When testing on an Android emulator device, use `10.0.2.2` as the host to reach the `localhost` of the host computer. Keep in mind that on Android, the cleartext traffic must be allowed for this, which is not intended for use in production.

### Why do I get a SwiftPM package identity collision on iOS?[¶](#why-do-i-get-a-swiftpm-package-identity-collision-on-ios "Permanent link")

This is a known issue when using the plugin with Swift Package Manager. Add the `symlink` package option for `@capacitor-firebase/functions` to your Capacitor configuration as described in the [Installation](#installation) section. Note that SPM `packageOptions` support requires Capacitor CLI 8.4.0 or later.

### Can I use this plugin with Ionic, React, Vue or Angular?[¶](#can-i-use-this-plugin-with-ionic-react-vue-or-angular "Permanent link")

Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects.

## Related Plugins[¶](#related-plugins "Permanent link")

* [Firebase Authentication](https://capawesome.io/docs/sdks/capacitor/firebase/authentication/): Sign in users with Firebase Authentication.
* [Firebase Cloud Firestore](https://capawesome.io/docs/sdks/capacitor/firebase/cloud-firestore/): Store and sync app data in Cloud Firestore.
* [Firebase Cloud Storage](https://capawesome.io/docs/sdks/capacitor/firebase/cloud-storage/): Upload and download files with Firebase Cloud Storage.

## Newsletter[¶](#newsletter "Permanent link")

Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our [Capawesome Newsletter](https://cloud.capawesome.io/newsletter/).

## Changelog[¶](#changelog "Permanent link")

See [CHANGELOG.md](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/CHANGELOG.md).

## License[¶](#license "Permanent link")

See [LICENSE](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/LICENSE).

---

1. This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries. [↩](#fnref:1 "Jump back to footnote 1 in the text")

July 8, 2026 

Back to top

```json
{"@context": "https://schema.org", "@graph": [{"@type": "TechArticle", "@id": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/#article", "headline": "Capacitor Firebase Cloud Functions Plugin", "name": "Capacitor Firebase Cloud Functions Plugin", "description": "Unofficial Capacitor plugin for Firebase Cloud Functions SDK to call backend functions in your app with support for Android, iOS, and Web.", "inLanguage": "en", "url": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/", "mainEntityOfPage": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "about": {"@id": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/#software"}}, {"@type": "SoftwareSourceCode", "@id": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/#software", "name": "Capacitor Firebase Cloud Functions Plugin", "description": "Unofficial Capacitor plugin for Firebase Cloud Functions SDK to call backend functions in your app with support for Android, iOS, and Web.", "url": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/", "programmingLanguage": "TypeScript", "runtimePlatform": "Capacitor", "codeRepository": "https://github.com/capawesome-team", "author": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}, "publisher": {"@type": "Organization", "name": "Capawesome", "url": "https://capawesome.io", "logo": {"@type": "ImageObject", "url": "https://capawesome.io/assets/images/logo.svg"}}}]}
{"@context": "https://schema.org", "@type": "FAQPage", "mainEntity": [{"@type": "Question", "name": "What is the difference between callByName and callByUrl?", "acceptedAnswer": {"@type": "Answer", "text": "The callByName(...) method calls a callable function by its name and, optionally, its region. The callByUrl(...) method calls a callable function by its full URL instead, which is useful if the function is hosted on a custom domain."}}, {"@type": "Question", "name": "What data types can I pass to a callable function?", "acceptedAnswer": {"@type": "Answer", "text": "You can pass strings, numbers, booleans, arrays, and nested objects as data to a callable function. The result of the function is returned in the data property of the call result."}}, {"@type": "Question", "name": "How do I test my functions locally?", "acceptedAnswer": {"@type": "Answer", "text": "Use the useEmulator(...) method to instrument your app to talk to the local Cloud Functions emulator, as shown in the usage example above. When testing on an Android emulator device, use 10.0.2.2 as the host to reach the localhost of the host computer. Keep in mind that on Android, the cleartext traffic must be allowed for this, which is not intended for use in production."}}, {"@type": "Question", "name": "Why do I get a SwiftPM package identity collision on iOS?", "acceptedAnswer": {"@type": "Answer", "text": "This is a known issue when using the plugin with Swift Package Manager. Add the symlink package option for @capacitor-firebase/functions to your Capacitor configuration as described in the Installation section. Note that SPM packageOptions support requires Capacitor CLI 8.4.0 or later."}}, {"@type": "Question", "name": "Can I use this plugin with Ionic, React, Vue or Angular?", "acceptedAnswer": {"@type": "Answer", "text": "Yes, the plugin is framework-agnostic. It works in any Capacitor app regardless of the web framework, including Ionic with Angular, React, or Vue, as well as plain JavaScript projects."}}], "url": "https://capawesome.io/docs/sdks/capacitor/firebase/cloud-functions/"}
```
