@nativescript/firebase-functions
NativeScript Firebase - 函数
npm i --save @nativescript/firebase-functions

@nativescript/firebase-functions

内容

简介

此插件允许您使用 NativeScript 与 Firebase 云函数一起工作。

image

为您的应用设置 Firebase

将 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