Firebase Cloud Messaging (FCM) поддерживает процесс node.js после отправки сообщения - PullRequest
0 голосов
/ 31 января 2019

Мы пытаемся использовать Firebase Cloud Messaging (FCM) с node.js в безсерверной среде (AWS Lambda).Ниже приведена наша простая функция отправки push-уведомлений на устройство с помощью SDK.

FCM входит в систему, и все, кажется, работает.Однако процесс node.js не завершается автоматически после вызова этой функции.Это означает, что нам выставили счет за дополнительное время, проведенное в безсерверной среде.

Мы можем использовать firebaseApp.delete(), чтобы принудительно закрыть приложение, но это кажется чрезмерным.Как правильно сделать так, чтобы процесс node.js остановился сам по себе?

var admin = require("firebase-admin")

// authorize for Firebase with private key cleaned up to avoid PEM formatting error
let firebaseApp = admin.initializeApp({
  databaseURL: process.env.GCLOUD_FIREBASE_DB_URL,
  credential: admin.credential.cert({
    projectId: process.env.GCLOUD_ADMIN_PROJECT_ID,
    clientEmail: process.env.GCLOUD_ADMIN_CLIENT_EMAIL,
    privateKey: process.env.GCLOUD_ADMIN_PRIVATE_KEY.replace(/\\n/g, "\n"),
  })
})

async function sendPush(options) {

   let msg = {
     notification: {body: options.body, title: options.title},
     token: options.token
  }

  const dryRun = true
  firebaseApp.messaging().send(msg, dryRun)
    .then((msgId) => {
      // Response is a message ID string.
      console.log(`Successfully sent a push to ${msgId}.`)
      return msgId
    })
    // No catch as errors are expected to be handled outside this function
}

module.exports = sendPush
...