@capacitor-firebase/functions
v6.2.0
Published
Capacitor plugin for Firebase Cloud Functions.
Downloads
447
Readme
@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 ofcom.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 |
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.