Unofficial Capacitor plugin for Firebase Cloud Functions.1
Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our Capawesome Newsletter.
| Plugin Version | Capacitor Version | Status |
|---|---|---|
| 8.x.x | >=8.x.x | Active support |
| 7.x.x | 7.x.x | Deprecated |
You can use our AI-Assisted Setup to install the plugin. Add the Capawesome Skills to your AI tool using the following command:
npx skills add capawesome-team/skillsThen use the following prompt:
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:
npm install @capacitor-firebase/functions
npx cap syncAdd Firebase to your project if you haven't already (Android / iOS).
If needed, you can define the following project variable in your app’s variables.gradle file to change the default version of the dependency:
$firebaseFunctionsVersionversion ofcom.google.firebase:firebase-functions(default:22.1.0)
This can be useful if you encounter dependency conflicts with other plugins in your project.
No configuration required for this plugin.
A working example can be found here: robingenz/capacitor-firebase-plugin-demo
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,
});
};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<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(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
| Prop | Type | Description | Since |
|---|---|---|---|
data |
ResponseData |
The result of the callable function. | 6.1.0 |
| 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 |
| Prop | Type | Description | Since |
|---|---|---|---|
url |
string |
The URL of the callable function. | 6.1.0 |
| 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. |
CallResult<ResponseData>
CallResult<ResponseData>
See CHANGELOG.md.
See LICENSE.
Footnotes
-
This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries. ↩