【发布时间】:2017-04-01 11:00:05
【问题描述】:
我目前正在将我的 firebase-queue 工作人员迁移到 Cloud Functions for Firebase。我通过 APNS 和 GCM 向设备发送推送通知的一名工作人员。为了通过 APNS 发送推送通知,我使用库 node-apn 在其中创建到 APNS 的持久连接使用
const apnConnection = new apn.Connection(connectionOptions);
然后我可以继续使用apnConnection 向设备发送推送通知,只要我收到要发送的任务,而无需每次都重新创建它。
apnConnection.pushNotification(pushNotification, device);
我想问一下这样的持久连接是否也会在多个 Firebase 函数调用之间保持,或者我是否需要创建此连接并在每次调用 Firebase 函数时将其关闭。我的 Firebase 函数看起来像
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(firebaseConfig);
const apnConnection = new apn.Connection(connectionOptions);
exports.verifyCode = functions.database.ref('/tasks/sendPushNotification/{taskId}')
.onWrite(event => {
const taskSnapshot = event.data
if(!taskSnapshot.exists()) {
return
}
const task = taskSnapshot.val()
// Create pushNotification and device from the task
return apnConnection.pushNotification(pushNotification, device);
})
我认为这归结为函数是否可以在调用之间保持某种状态,或者它们更像是完全无状态的 AWS lambda 函数,并且由于我们只初始化一次管理 SDK,我认为它在调用之间保持某种状态调用,但我想在移动代码之前检查一下。
【问题讨论】:
标签: javascript firebase google-cloud-functions