簡體   English   中英

如何在flutter中使用javascript雲函數發送fcm通知?

[英]How to send a fcm notification using javascript cloud functions in flutter?

我創建了一個應用程序來測試 Flutter 應用程序中的推送通知。

我可以從 firebase 消息控制台發送通知,我也可以在前台和后台接收它。

完成此操作后,我進入下一步,即使用 firebase 雲消息傳遞服務自動發送它,我使用了 javascript 並部署了函數,並且它可以毫無問題地執行。

但問題是我無法收到這樣的通知:-

在此處輸入圖片說明

但是當我打開我的應用程序時,因為我已經在 initState() 中配置了 firebase 消息; 我可以看到通知和數據也被打印出來,但我不能像上面的照片那樣接收它。


我該怎么辦?

嘗試使用后台處理程序或頂級方法,如 firebase 消息傳遞插件的自述文件所述。


關於我的 javascript index.js 文件:

當一個新文檔添加到帖子集合時,它會為 pushTokens 集合中的所有令牌發送一個通知,它會這樣做,但問題是我在上面提到過。

索引.js:

const functions = require('firebase-functions');

const admin = require('firebase-admin');


admin.initializeApp(functions.config().firebase);

var notificationMessageData;

exports.fcmTester = functions.firestore.document('posts/{postID}').onCreate((snapshot, context) => {
    const notificationMessageData = snapshot.data();

    return admin.firestore().collection('pushTokens').get()
        .then(snapshot => {
            var tokens = [];

            if (snapshot.empty) {
                console.log('No Devices');
                throw new Error('No Devices');
            } else {
                for (var token of snapshot.docs) {
                    tokens.push(token.data().tokenID);
                }

                var payload = {
                    "notification": {
                        "title": "from" + notificationMessageData.writer,
                        "body": "from" + notificationMessageData.name,
                        "sound": "default"
                    },
                    "data": {
                        "sendername": notificationMessageData.writer,
                        "message": notificationMessageData.name
                    }
                }

                return admin.messaging().sendToDevice(tokens, payload)
            }

        })
        .catch((err) => {
            console.log(err);
            return null;
        })

});

將您的應用程序置於后台並再次嘗試發送通知 bcoz flutter firebase 消息傳遞插件將不會創建通知,如果您在發送通知時使用該應用程序,盡管您可以看到其數據,但要生成通知,您必須手動執行如果用戶當前正在使用該應用程序。

在其他情況下,插件將創建通知,例如應用程序是否終止或其在后台。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM