# @capacitor-firebase/functions 中文文档

规范地址：https://npmcn.com/package/%40capacitor-firebase/functions/

版本：8\.6\.0
npm 元数据更新时间：2026-10-31T07:04:15.702Z
中文译文更新时间：2026-11-09T06:34:10.324Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40capacitor-firebase/functions
原文对照：https://npmcn.com/package/%40capacitor-firebase/functions/?lang=original
项目主页：https://capawesome.io/
源码仓库：https://github.com/capawesome-team/capacitor-firebase

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：68.5 kB，39 个文件
- 模块格式：ESM + CJS
- TypeScript 类型：包内自带
- 运行依赖：0 个
- peer 依赖：firebase ^12\.6\.0，@capacitor/core \>=8\.0\.0
- 首次发布：2024-06-19T07:13:40.112Z
- 最新版本发布：2026-10-31T07:04:15.341Z
- 近 30 天下载量：4706（2026-10-09 至 2026-11-07，npm 官方下载统计）
- 已发布版本数：26（近 12 个月 14 个）

## 中文简介

用于Android,iOS,和Web上的Firebase Cloud函数的电容插件.

## 安装

```sh
npm install @capacitor-firebase/functions
```

也可以使用：`pnpm add @capacitor-firebase/functions`、`yarn add @capacitor-firebase/functions`、`bun add @capacitor-firebase/functions`

## README

# 电容点云函数插件

非官方电容插件 [火基地云函数](https://firebase.google.com/docs/functions/)\[^1\]

[![Try Capawesome Cloud free for 14 days — iOS builds without a Mac](https://capawesome.io/assets/banners/cloud-free-trial-capacitor-apps.png)](https://capawesome.io/)

## 使用大小写

Firebase Cloud 函数插件一般用于从您的 Capacitor app 中运行后端逻辑,而不管理自己的服务器,例如:

-   **无服务器后端逻辑**: 以名称调用可调用 Cloud 函数从您的应用程序运行可信任的服务器侧代码 .
-   **结构化数据交换**: 将字符串、数字、布尔、数组和对象传递到函数并处理返回的结果.
-   **自定义域和区域**: 调用被部署在特定区域或由自定义域按其URL托管的函数.
-   **地方发展**: 将您的功能与 Cloud 函数模拟器进行测试,然后将其部署到生产中.

## 兼容性

| 插件版本 | 电容版本 | 状态 |
| --- | --- | --- |
| 8.x.x (英语) | \>=8.x.x | 积极支持 |
| 7.x.x (中文(简体) ) | 7.x.x (中文(简体) ) | 折旧 |

## 指南

-   [从 Capacitor App 调用火基云函数](https://capawesome.io/blog/capacitor-firebase-cloud-functions-guide/): 以名称或URL调用无服务器后端逻辑,包括本地仿真器测试,使用此插件.
-   [如何在电容App中使用火把](https://capawesome.io/blog/how-to-use-firebase-in-a-capacitor-app/): 哪些插件与您的后端逻辑自然对齐, 从登录到它读取的数据库 .

## 安装

你可以用我们的 **AI 辅助设置** 以安装插件. 添加数据 [超级技能](https://github.com/capawesome-team/skills) 至您的 AI 工具,使用以下命令:

```bash
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.
```

如果你喜欢 **手动设置**,通过运行以下命令来安装插件,并遵循下面的平台特定指令:

```bash
npm install @capacitor-firebase/functions
npx cap sync
```

如果您还没有将 Firebase 添加到您的项目中([机器人](https://firebase.google.com/docs/android/setup) 编号 : [iOS系统](https://firebase.google.com/docs/ios/setup)) (中文(简体) ).

### 机器人

#### 变量

如果需要, 您可以在您的应用程序中定义以下工程变量 `variables.gradle` 要更改依赖的默认版本的文件 :

-   `$firebaseFunctionsVersion` 版本 `com.google.firebase:firebase-functions` (默认 : `22.1.0`(中文(简体) )

如果您在工程中遇到其它插件的依赖性冲突, 这会有所帮助 .

### iOS系统

#### Swift 软件包管理器

在您的 `capacitor.config.json` (或 `capacitor.config.ts`) 避免 [SwiftPM 软件包识别相撞](https://github.com/capawesome-team/capacitor-firebase/issues/959)数字 :

```json
{
  "experimental": {
    "ios": {
      "spm": {
        "packageOptions": {
          "@capacitor-firebase/functions": {
            "symlink": true
          }
        }
      }
    }
  }
}
```

**请注意**目标 `packageOptions` 支持需要控制器 CLI **8.4.0+ (中文(简体) )**。 。 。 .

## 配置

此插件不需要配置 .

## 演示

这里有一个实例: [robingenz/电容器-火力基地-插座-demo](https://github.com/robingenz/capacitor-firebase-plugin-demo)

## 使用量

以下例子说明如何通过名称或URL来称呼云函数,以及如何连接到云函数模拟器.

### 按名称调用函数

唤作可调用云函数名. 您可以通过字符串、 数字、 布尔、 数组和对象作为数据并接收函数在 `data` 属性。 使用 `region` 选项:

```typescript
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 调用 :

```typescript
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上,必须允许明确文本的流量,而该流量并非用于生产:

```typescript
import { FirebaseFunctions } from '@capacitor-firebase/functions';

const useEmulator = async () => {
  await FirebaseFunctions.useEmulator({
    host: '10.0.2.2',
    port: 9001,
  });
};
```

## API 密码

-   [`callByName(...)`](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbyname)
-   [`callByUrl(...)`](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbyurl)
-   [`useEmulator(...)`](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-useemulator)
-   [接口](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-interfaces)
-   [类型异名](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-type-aliases)

### 调用ByName (...)

```typescript
callByName<RequestData = unknown, ResponseData = unknown>(options: CallByNameOptions<RequestData>) => Promise<CallByNameResult<ResponseData>>
```

按名称调用可调用功能 .

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[CallByNameOptions](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbynameoptions)<RequestData>` |

**回返情况:** `Promise<[CallByNameResult](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbynameresult)<ResponseData>>`

**自:** 6.1.0 (中文(简体) )

* * *

### 调用 ByUrl (...)

```typescript
callByUrl<RequestData = unknown, ResponseData = unknown>(options: CallByUrlOptions<RequestData>) => Promise<CallByUrlResult<ResponseData>>
```

以 URL 调用可调用功能 .

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[CallByUrlOptions](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbyurloptions)<RequestData>` |

**回返情况:** `Promise<[CallByUrlResult](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callbyurlresult)<ResponseData>>`

**自:** 6.1.0 (中文(简体) )

* * *

### 使用计算器(...)

```typescript
useEmulator(options: UseEmulatorOptions) => Promise<void>
```

将您的应用程序用于向云函数模拟器说话 .

在Android上,必须允许明确文本的流量. 关于电容配置 :

```
{
  server: {
    cleartext: true
  }
}
```

**明确文本流量并非用于生产.**

| 参数 | 类型 |
| --- | --- |
| **`options`** | `[UseEmulatorOptions](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-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](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callresult)<ResponseData>`

#### 呼叫ByUrl结果

`[CallResult](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-callresult)<ResponseData>`

## 财务问题

### 两者有什么区别 `callByName` 财务报告和审定财务报表 `callByUrl`? 吗?

这个 `callByName(...)` 方法称其名称为可调用函数,也可选用其区域。 这个 `callByUrl(...)` 方法用其完整的 URL 调用一个可调用函数,如果该函数被托管在一个自定义域上,则有用.

### 哪些数据类型可以传递给一个可调用函数?

可以将字符串、数字、布尔、阵列和嵌入对象作为数据传递给一个可调用函数。 该函数的结果在 `data` 调用结果的属性.

### 我如何测试我的功能 本地?

使用 `useEmulator(...)` 用于向本地 Cloud 函数模拟器说话的应用程序的仪表方法,如 [使用示例](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-use-the-cloud-functions-emulator) 页:1 在Android模拟器设备上测试时,请使用 `10.0.2.2` 作为到达 `localhost` 的计算机。 记住,在Android上,必须允许清晰文本的流量,这并非用于生产.

### 为什么我在iOS上得到SwiftPM包身份相撞??

在使用 Swift 包管理器的插件时,这是一个已知的问题 。 添加 `symlink` 软件包选项 `@capacitor-firebase/functions` 切换到 [安装](https://npmcn.com/package/%40capacitor-firebase/functions/#readme-installation) 节。 说明SPM `packageOptions` 支持需要CLI 8.4.0或以后.

### 我能用这个插件吗? 有Ionic、React、Vue或Angular?

是的,插件是框架不可知的。 它在任意网络框架的Capacitor app中工作,包括有Angular,React,或Vue的Ionic,以及平版JavaScript等项目.

## 相关插件

-   [Firebase 验证](https://capawesome.io/docs/sdks/capacitor/firebase/authentication/):在用户中以 Firebase 认证签名.
-   [火地云炉](https://capawesome.io/docs/sdks/capacitor/firebase/cloud-firestore/): Cloud Firestore中存储并同步应用数据.
-   [火地云存储](https://capawesome.io/docs/sdks/capacitor/firebase/cloud-storage/): 上传并下载带有Firebase云存储的文件.

## 通讯

随时更新有关卡帕韦索姆、Capacitor和Ionic生态系统的最新消息和最新消息,因为我们 [《卡帕索克通讯》](https://cloud.capawesome.io/newsletter/)。 。 。 .

## 更改日志

见 [变动情况](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/CHANGELOG.md)。 。 。 .

## 许可证

见 [自由主义](https://github.com/capawesome-team/capacitor-firebase/blob/main/packages/functions/LICENSE)。 。 。 .

\[^1\]: 这个项目不附属于Google LLC或其任何子公司或子公司,也不获得其认可、支持、赞助或批准.

## 常见问题

### @capacitor-firebase/functions 是什么？

用于Android,iOS,和Web上的Firebase Cloud函数的电容插件\.

### 如何安装 @capacitor-firebase/functions？

在项目目录运行 npm install @capacitor-firebase/functions，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@capacitor/core（\>=8\.0\.0）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @capacitor-firebase/functions 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @capacitor-firebase/functions 支持 ESM 还是 CommonJS？

同时提供 ES Module 与 CommonJS 入口，import 和 require\(\) 都可以使用，打包工具会自动选择合适的版本。

### @capacitor-firebase/functions 可以商用吗？

@capacitor-firebase/functions 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @capacitor-firebase/functions 的下载量有多少？

根据 npm 官方下载统计，@capacitor-firebase/functions 在 2026/10/09 – 2026/11/07 这 30 天内被下载 4,706 次，日均约 157 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @capacitor-firebase/functions 还在维护吗？

最新版本 8\.6\.0 发布于 2026/10/31（9 天前）；至今共发布 26 个版本，其中过去 12 个月发布了 14 个；首次发布于 2024/06/19。发布频率只是参考信号：功能稳定的工具可能很少需要更新，建议结合源码仓库的 issue 和提交记录判断。

