电容点云函数插件
非官方电容插件 火基地云函数[^1]
使用大小写
Firebase Cloud 函数插件一般用于从您的 Capacitor app 中运行后端逻辑,而不管理自己的服务器,例如:
- 无服务器后端逻辑: 以名称调用可调用 Cloud 函数从您的应用程序运行可信任的服务器侧代码 .
- 结构化数据交换: 将字符串、数字、布尔、数组和对象传递到函数并处理返回的结果.
- 自定义域和区域: 调用被部署在特定区域或由自定义域按其URL托管的函数.
- 地方发展: 将您的功能与 Cloud 函数模拟器进行测试,然后将其部署到生产中.
兼容性
| 插件版本 | 电容版本 | 状态 |
|---|---|---|
| 8.x.x (英语) | >=8.x.x | 积极支持 |
| 7.x.x (中文(简体) ) | 7.x.x (中文(简体) ) | 折旧 |
指南
- 从 Capacitor App 调用火基云函数: 以名称或URL调用无服务器后端逻辑,包括本地仿真器测试,使用此插件.
- 如何在电容App中使用火把: 哪些插件与您的后端逻辑自然对齐, 从登录到它读取的数据库 .
安装
你可以用我们的 AI 辅助设置 以安装插件. 添加数据 超级技能 至您的 AI 工具,使用以下命令:
npx skills add capawesome-team/skills --skill capacitor-plugins
然后使用下列提示:
Use the `capacitor-plugins` skill from `capawesome-team/skills` to install the `@capacitor-firebase/functions` plugin in my project.
如果你喜欢 手动设置,通过运行以下命令来安装插件,并遵循下面的平台特定指令:
npm install @capacitor-firebase/functions
npx cap sync
如果您还没有将 Firebase 添加到您的项目中(机器人 编号 : iOS系统) (中文(简体) ).
机器人
变量
如果需要, 您可以在您的应用程序中定义以下工程变量 variables.gradle 要更改依赖的默认版本的文件 :
$firebaseFunctionsVersion版本com.google.firebase:firebase-functions(默认 :22.1.0(中文(简体) )
如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .
iOS系统
Swift 软件包管理器
在您的 capacitor.config.json (或 capacitor.config.ts) 避免 SwiftPM 软件包识别相撞数字 :
{
"experimental": {
"ios": {
"spm": {
"packageOptions": {
"@capacitor-firebase/functions": {
"symlink": true
}
}
}
}
}
}
请注意目标 packageOptions 支持需要控制器 CLI 8.4.0+ (中文(简体) )。 。 。 .
配置
此插件不需要配置 .
演示
这里有一个实例: robingenz/电容器-火力基地-插座-demo
使用量
以下例子说明如何通过名称或URL来称呼云函数,以及如何连接到云函数模拟器.
按名称调用函数
唤作可调用云函数名. 您可以通过字符串、 数字、 布尔、 数组和对象作为数据并接收函数在 data 属性。 使用 region 选项:
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;
};
通过 URL 调用一个函数
如果您的可调用功能被托管在一个自定义域上, 或者您更愿意直接地址, 请用其 URL 调用 :
import { FirebaseFunctions } from '@capacitor-firebase/functions';
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;
};
使用云函数模拟器
在开发期间,您可以将您的应用程序装配到本地的 Cloud 函数模拟器上 。 当使用Android模拟器设备时, 10.0.2.2 是连接到 localhost 的计算机。 请注意,在Android上,必须允许明确文本的流量,而该流量并非用于生产:
import { FirebaseFunctions } from '@capacitor-firebase/functions';
const useEmulator = async () => {
await FirebaseFunctions.useEmulator({
host: '10.0.2.2',
port: 9001,
});
};
API 密码
调用ByName (...)
callByName<RequestData = unknown, ResponseData = unknown>(options: CallByNameOptions<RequestData>) => Promise<CallByNameResult<ResponseData>>
按名称调用可调用功能 .
| 参数 | 类型 |
|---|---|
options | CallByNameOptions<RequestData> |
回返情况: Promise<CallByNameResult<ResponseData>>
自: 6.1.0 (中文(简体) )
调用 ByUrl (...)
callByUrl<RequestData = unknown, ResponseData = unknown>(options: CallByUrlOptions<RequestData>) => Promise<CallByUrlResult<ResponseData>>
以 URL 调用可调用功能 .
| 参数 | 类型 |
|---|---|
options | CallByUrlOptions<RequestData> |
回返情况: Promise<CallByUrlResult<ResponseData>>
自: 6.1.0 (中文(简体) )
使用计算器(...)
useEmulator(options: UseEmulatorOptions) => Promise<void>
将您的应用程序用于向云函数模拟器说话 .
在Android上,必须允许明确文本的流量. 关于电容配置 :
{
server: {
cleartext: true
}
}
明确文本流量并非用于生产.
| 参数 | 类型 |
|---|---|
options | UseEmulatorOptions |
自: 6.1.0 (中文(简体) )
接口
呼叫结果
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
data | ResponseData | 可调用函数的结果. | 6.1.0 (中文(简体) ) |
调用名称选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
name | string | 可调用函数的名称 . | 6.1.0 (中文(简体) ) |
region | string | 可调用函数的区域 . | 6.1.0 (中文(简体) ) |
调用ByUrl 选项
| Prop | 类型 | 说明 | 自兹 |
|---|---|---|---|
url | string | 可调用函数的 URL . | 6.1.0 (中文(简体) ) |
使用编辑器选项
| Prop | 类型 | 说明 | 默认 | 自兹 |
|---|---|---|---|---|
host | string | 模拟器主机没有任何端口或方案. 使用Android模拟器设备时注意: 10.0.2.2是连接主机计算机"localhost"的特殊IP地址. | 6.1.0 (中文(简体) ) | |
port | number | 模拟器端口 . | 5001 | 6.1.0 (中文(简体) ) |
regionOrCustomDomain | string | 可调用函数所在区域或自定义域内设有可调用函数. |
类型异名
调用ByName 结果
CallResult<ResponseData>
呼叫ByUrl结果
CallResult<ResponseData>
财务问题
两者有什么区别 callByName 财务报告和审定财务报表 callByUrl? 吗?
这个 callByName(...) 方法称其名称为可调用函数,也可选用其区域。 这个 callByUrl(...) 方法用其完整的 URL 调用一个可调用函数,如果该函数被托管在一个自定义域上,则有用.
哪些数据类型可以传递给一个可调用函数?
可以将字符串、数字、布尔、阵列和嵌入对象作为数据传递给一个可调用函数。 该函数的结果在 data 调用结果的属性.
我如何测试我的功能 本地?
使用 useEmulator(...) 用于向本地 Cloud 函数模拟器说话的应用程序的仪表方法,如 使用示例 页:1 在Android模拟器设备上测试时,请使用 10.0.2.2 作为到达 localhost 的计算机。 记住,在Android上,必须允许清晰文本的流量,这并非用于生产.
为什么我在iOS上得到SwiftPM包身份相撞??
在使用 Swift 包管理器的插件时,这是一个已知的问题 。 添加 symlink 软件包选项 @capacitor-firebase/functions 切换到 安装 节。 说明SPM packageOptions 支持需要CLI 8.4.0或以后.
我能用这个插件吗? 有Ionic、React、Vue或Angular?
是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.
相关插件
- Firebase 验证:在用户中以 Firebase 认证签名.
- 火地云炉: Cloud Firestore中存储并同步应用数据.
- 火地云存储: 上传并下载带有Firebase云存储的文件.
通讯
随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 《卡帕索克通讯》。 。 。 .
更改日志
见 变动情况。 。 。 .
许可证
见 自由主义。 。 。 .
[^1]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.