8.7 发布—WinterCG 兼容性第一部分
了解更多

在 GitHub 上查看

@nativescript/firebase-functions

内容

简介

此插件允许你使用 Firebase 云函数 与 NativeScript。

image

为 Firebase 设置你的应用

将 Firebase Functions SDK 添加到你的应用

要将云 Firebase Functions SDK 添加到你的应用,请通过在项目的根目录中运行以下命令来安装 @nativescript/firebase-functions 插件。

cli
npm install @nativescript/firebase-functions

使用 @nativescript/firebase-functions

云函数模块提供直接触发已部署 HTTPS 可调用函数的功能,无需担心安全性或实现 HTTP 请求库。

部署到 Firebase 的函数具有唯一的名称,允许你轻松识别要向其发送请求的端点。

调用端点

假设我们必须部署一个名为 listProducts 的可调用端点。要调用端点,库公开了 httpsCallable 方法。例如

ts
// Deployed HTTPS callable
exports.listProducts = functions.https.onCall(() => {
  return [
    /* ... */
    // Return some data
  ]
})

在应用程序中,可以通过将端点的名称传递给 httpsCallable 方法来直接访问返回的产品列表。

ts
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) 的示例

ts
// Deployed HTTPS callable
exports.listProducts = functions.region('europe-west2').https.onCall(() => {
  return [
    /* ... */
    // Return some data
  ]
})

访问区域函数端点

要访问区域函数端点,请在 Firebase 应用实例上调用 firebase().app().functions(region) 方法。

ts
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 方法,并将模拟器的主机和端口传递给它,将云函数连接到本地模拟器。

ts
import { firebase } from '@nativescript/firebase-core'
firebase().functions().useEmulator('localhost', 5000)

API

Functions 类

ios

ts
functionsIOs: FIRFunctions = firebase.functions().ios

一个 只读 属性,它返回本机 iOS FIRFunctions 实例。


android

ts
functionsAndroid: com.google.firebase.functions.FirebaseFunctions =
  firebase.functions().android

一个 只读 属性,它返回本机 Android com.google.firebase.functions.FirebaseFunctions 实例。


app

ts
app: FirebaseApp = firebase().functions().app

一个 只读 属性,它返回与 Functions 实例关联的 FirebaseApp 实例。


constructor()

ts
functions: Functions = new Functions(app)

创建一个新的 Functions 实例。

参数类型描述
appFirebaseApp一个可选的 FirebaseApp 实例以供使用。

httpsCallable()

ts
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 拒绝。

参数类型描述
namestring对可调用 HTTPS 触发器的引用的名称。
optionsHttpsCallableOptions一个可选的对象,它设置此 Functions 实例调用超时的长度(以为单位)。

useEmulator()

ts
firebase().functions().useEmulator(host, port)

允许你通过连接到模拟器在本地测试云函数。

参数类型描述
hoststring要连接到的模拟器的主机。
portnumber要连接到的模拟器的端口。

许可证

Apache 许可证 2.0 版

上一个
Firestore