如何检查FCM消息状态?

我如何收到FCM的确认,收到了一条消息? 我有一个渐进的networking应用程序,检查用户是否有一个保存在数据库中的fcm令牌,如果他们这样做,并使用FCM,如果他们不这样做,并诉诸于SMS(通过twilio)。 问题在于即使closures浏览器,也会logging“”成功发送fcm消息“,因为消息排队等待浏览器重新打开。

我怎么能告诉用户实际上收到了一条消息,而不是等待在一个队列中? 如果Chrome已closures,则需要立即发送短信。

const functions = require('firebase-functions'); const admin = require('firebase-admin'); const serviceAccount = require('./service-account.json'); admin.initializeApp({ credential: admin.credential.cert(serviceAccount), databaseURL: `https://${process.env.GCLOUD_PROJECT}.firebaseio.com` }); function sendFCM(uid, title, body) { const payload = { notification: { title: title, body: body, click_action: "https://www.google.com" } }; const payloadOptions = { timeToLive: 0 }; getUserDetails(uid).then((details) => { if (details.fcmToken !== undefined) { // send fcm message return admin.messaging().sendToDevice(details.fcmToken, payload, payloadOptions) .then(response => { console.log("Successfully sent fcm message"); }) .catch((err) => { console.log("Failed to send fcm message"); return sendSMS(details.phone_number, body); });; } else { console.log("No fcm token found for uid", uid); return sendSMS(details.phone_number, body); } }) } 

目前没有API或FCM响应的一部分,告诉您消息当前是否在队列中或已经发送。

但是,您可以使用送达回执 ( 注意:实现送达回执需要XMPP连接协议 )。