插件
函数
@nativescript/firebase-functions
内容
简介
此插件允许你使用 Firebase 云函数 与 NativeScript。
为 Firebase 设置你的应用
- 要为你的 NativeScript 应用设置和初始化 Firebase,请遵循 @nativescript/firebase-core 插件文档中的说明。
将 Firebase Functions SDK 添加到你的应用
要将云 Firebase Functions 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)
})
设置和访问区域云函数端点
云函数是区域性的,这意味着运行云函数的基础设施位于特定的区域。
默认情况下,函数在 us-central1
区域运行。要查看支持的区域,请参阅 支持的区域。
设置区域函数端点
要在初始化 Firebase 应用后在不同区域运行函数,请使用 firebase().app().functions(region)
设置区域。
以下代码显示了设置区域函数端点 (europe-west2
) 的示例
// Deployed HTTPS callable
exports.listProducts = functions.region('europe-west2').https.onCall(() => {
return [
/* ... */
// Return some data
]
})
访问区域函数端点
要访问区域函数端点,请在 Firebase 应用实例上调用 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)
})
使用本地模拟器测试云函数
在使用云函数开发应用程序时,可以在本地模拟器中运行函数。
要调用模拟函数,请通过在 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 触发器的引用的名称。 |
options | HttpsCallableOptions | 一个可选的对象,它设置此 Functions 实例调用超时的长度(以秒 为单位)。 |
useEmulator()
firebase().functions().useEmulator(host, port)
允许你通过连接到模拟器在本地测试云函数。
参数 | 类型 | 描述 |
---|---|---|
host | string | 要连接到的模拟器的主机。 |
port | number | 要连接到的模拟器的端口。 |
许可证
Apache 许可证 2.0 版