【问题标题】:Any way to improve sending push notification quickly using cloud function and fcm or some alternative?有什么方法可以使用云功能和 fcm 或其他替代方法来改进快速发送推送通知?
【发布时间】: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


【解决方案1】:

如果您指的是日志中可见的最后一次执行,这似乎是“冷启动”的问题。

从日志中我可以看到之前的执行已经提前一个小时执行了,所以我想执行环境经常是从头开始初始化的。

你可以在Firebase functions Tips & tricks文章中读到几句话。

【讨论】:

  • 我已经看过那个链接了。是的,这似乎是“冷启动”的问题。但是这种冷启动交易对于通话和聊天应用来说并不是很好!。
  • 但这仅适用于您在较长时间后使用该功能时。如果您正在计划聊天应用程序,我想这将被大量使用,所以这应该不是问题。
猜你喜欢
  • 2021-10-20
  • 2021-03-03
  • 2021-06-16
  • 2018-06-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 1970-01-01
  • 2017-01-06
相关资源
最近更新 更多