@capacitor-firebase/functions¶
Unofficial Capacitor plugin for Firebase Cloud Functions.1
Newsletter¶
Stay up to date with the latest news and updates about the Capawesome, Capacitor, and Ionic ecosystem by subscribing to our Capawesome Newsletter.
Compatibility¶
| Plugin Version | Capacitor Version | Status |
|---|---|---|
| 8.x.x | >=8.x.x | Active support |
| 7.x.x | 7.x.x | Deprecated |
Installation¶
You can use our AI-Assisted Setup to install the plugin. Add the Capawesome Skills to your AI tool using the following command:
Then 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:
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:
$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.
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(...)¶
Instrument your app to talk to the Cloud Functions emulator.
On Android, the cleartext traffic must be allowed. On the Capacitor configuration:
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.
-
This project is not affiliated with, endorsed by, sponsored by, or approved by Google LLC or any of their affiliates or subsidiaries. ↩