【发布时间】:2021-05-04 01:59:18
【问题描述】:
我正在开发一个 Android 聊天应用程序,为了发送聊天推送通知,我部署了一个云函数,通过 Firebase 云消息传递向该函数发送通知。但是接收通知有相当的延迟。有没有其他方法可以快速发送通知或改进它?
我的云功能代码:
const functions = require("firebase-functions");
const admin = require("firebase-admin");
admin.initializeApp();
const db = admin.firestore();
exports.sendUserMessageNotification = functions.firestore.document("MessagesCollection/{messageChannel}/Messages/{messageId}").onCreate((snap, context) => {
const document = snap.data();
const message = document.message;
const toUserId = document.toUserId;
const fromUserId = document.fromUserId;
const fromUserName = document.fromUserName;
const isAudioMessage = document.audioMessage;
db.collection("TokenCollection").doc(toUserId).get().then(document => {
if(document.exists) {
var tokenDocument = document.data();
var payload;
if (isAudioMessage) {
payload = {
data: {
"title": "Message Recieved",
"body" : "Voice Message from " + fromUserName,
"type": "Message",
}
};
} else {
payload = {
data: {
"title": "Message Recieved",
"body": "Text Message from " + fromUserName,
"type": "Message"
}
};
}
return admin.messaging().sendToDevice(tokenDocument.deviceToken, payload).then(response => {
console.log("Message Sent Successfully");
});
}
});
});
我也将图像附加到我的云功能日志中,也许它会有所帮助
【问题讨论】:
-
您可以使用 FCM 的一种信号替代方案
-
您可以使用邮递员并手动创建推送通知,效果很好。
-
@Abdul postman 将如何帮助聊天应用程序(Android 应用程序)?
-
您只想生成一个推送通知,因此出于测试目的,您可以从那里创建一个,例如 REST API。
-
@Abdul 这不是为了测试目的抱歉。我正在开发实时聊天应用程序。
标签: android node.js google-cloud-firestore google-cloud-functions firebase-cloud-messaging