- 版本:3.3.2
- GitHub: https://github.com/NativeScript/firebase
- NPM: https://npmjs.net.cn/package/%40nativescript%2Ffirebase-functions
- 下载
- 昨日: 2
- 上周: 17
- 上个月: 240
@nativescript/firebase-functions
内容
简介
此插件允许您使用 NativeScript 与 Firebase 云函数一起工作。
为您的应用设置 Firebase
- 要设置和初始化 NativeScript 应用中的 Firebase,请遵循 @nativescript/firebase-core 插件的文档中的说明。
将 Firebase 函数 SDK 添加到您的应用中
要将 Cloud Firebase 函数 SDK 添加到您的应用中,请在项目的根目录中运行以下命令安装 @nativescript/firebase-functions
插件。
npm install @nativescript/firebase-functions
使用 @nativescript/firebase-functions
云函数模块提供了直接触发已部署的 HTTPS 可调用函数的功能,无需担心安全或实现 HTTP 请求库。
部署到 Firebase 的函数具有唯一的名称,这使得您可以轻松地识别您希望发送请求的端点。
调用端点
假设我们必须部署一个名为 listProducts
的可调用端点。要调用端点,库公开了一个 httpsCallable
方法。例如
// Deployed HTTPS callable
exports.listProducts = functions.https.onCall(() => {
return [
/* ... */
// Return some data
];
});
在应用程序中,可以通过将端点名称传递给 httpsCallable
方法直接访问返回的产品列表
import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-functions';
firebase()
.functions()
.httpsCallable('listProducts')()
.then((response) => {
setProducts(response.data);
setLoading(false);
});
设置和访问区域 Cloud 函数端点
云函数是 区域的,这意味着运行您的云函数的基础设施位于特定的区域。
默认情况下,函数在 us-central1
区域运行。要查看支持的区域,请参阅 支持的区域。
设置区域函数端点
初始化 Firebase App 后,要运行不同区域的函数,请使用 firebase().app().functions(region)
设置区域。
以下代码显示了设置区域函数端点(europe-west2
)的示例
// Deployed HTTPS callable
exports.listProducts = functions.region("europe-west2").https.onCall(() => {
return [
/* ... */
// Return some data
];
});
访问区域函数端点
要访问区域函数端点,请在 Firebase App 实例上调用 firebase().app().functions(region)
方法
import { firebase } from '@nativescript/firebase-core';
import '@nativescript/firebase-functions';
firebase().initializeApp();
firebase().app().functions("europe-west2");
firebase()
.functions()
.httpsCallable('listProducts')()
.then((response) => {
setProducts(response.data);
setLoading(false);
});
使用本地模拟器测试 Cloud 函数
在开发应用程序时使用云函数,您可以在本地模拟器中运行函数。
要调用模拟函数,通过在 Functions
实例上调用 useEmulator 方法并传入模拟器的地址和端口将云函数连接到本地模拟器。
import { firebase } from '@nativescript/firebase-core';
firebase().functions().useEmulator('localhost', 5000);
API
Functions 类
ios
functionsIOs: FIRFunctions = firebase.functions().ios;
一个只读属性,返回本地的 iOS FIRFunctions
实例。
android
functionsAndroid: com.google.firebase.functions.FirebaseFunctions = firebase.functions().android;
一个只读属性,返回本地的 Android com.google.firebase.functions.FirebaseFunctions
实例。
app
app: FirebaseApp = firebase().functions().app;
一个只读属性,返回与 Functions 实例关联的 FirebaseApp 实例。
constructor()
functions: Functions = new Functions(app);
创建一个新的 Functions 实例。
参数 | 类型 | 描述 |
---|---|---|
app |
FirebaseApp |
一个可选的 FirebaseApp 实例用于。 |
httpsCallable()
task: HttpsCallable = firebase().functions().httpsCallable(name, options);
httpsCallable(data).then((response: HttpsCallableResult) => {
// Do something with the response
}).catch((error: HttpsCallableError) => {
console.log(error.code, error.message, error.details);
});
返回一个可以带有可选数据调用的任务函数。该任务函数返回一个 Promise,该 Promise 将解析函数执行的结果(HttpsCallableResult
)。如果任务失败,Promise 将被拒绝,并带有 HttpsCallableError。
参数 | 类型 | 描述 |
---|---|---|
name |
string |
可调用HTTPS触发器的引用名称。 |
选项 |
HttpsCallableOptions | 一个可选对象,用于设置对此Functions 实例调用超时时间的长度,单位为秒 。 |
useEmulator()
firebase().functions().useEmulator(host, port);
允许您通过连接到模拟器在本地测试云函数。
参数 | 类型 | 描述 |
---|---|---|
主机 |
string |
要连接到的模拟器的主机。 |
端口 |
数字 |
要连接到的模拟器的端口。 |
许可证
Apache许可证版本2.0