簡體   English   中英

成功發送到設備后,Firebase雲消息傳遞不起作用

[英]Firebase cloud messaging does not work after successfully sendToDevice

我使用Firebase Cloud Functions通過Cloud Messaging將通知發送到iOS設備。 sendToDevice方法的效果很好,可以在Firebase Functions日志中返回成功承諾,而不會出現任何錯誤或警告,但是在iOS上,不會顯示通知。 如果我從Firebase通知儀表板發送通知,則該通知會很好地工作並且通知會顯示在設備上。 我不知道在哪里可以找到錯誤。 即使我像我說的那樣工作,該錯誤也可能在iOS應用程序方面?

Firebase配置:

 var functions = require('firebase-functions');
 var admin = require('firebase-admin');
 var config = functions.config();
 admin.initializeApp(functions.config().firebase);

雲功能的一部分:

APP.services.firebase.admin.database().ref('tokens/' + userId).once('value', function(snapshot) {

    var userDevicesTokens = [];

    snapshot.forEach(function(childSnapshot) {
        userDevicesTokens.push(childSnapshot.key)
    });

    if (userDevicesTokens.length === 0) {
        console.warn('No tokens for user');
        return;
    }

    var payload = {
        data: {
            title: options.title,
            text: options.text,
            type: options.type,
        }
    };
    APP.services.firebase.admin.messaging().sendToDevice(userDevicesTokens, payload)
        .then(function(response) {

            console.log("Successfully sent message:", response);

        })
        .catch(function(error) {
            console.log("Error sending message:", error);
        });

})

Firebase雲功能日志:

11: 52: 43.952 AM info newChatMessageTrigger
Successfully sent message: {
    results: [{
        messageId: '0:15016....'
    }],
    canonicalRegistrationTokenCount: 0,
    failureCount: 0,
    successCount: 1,
    multicastId: 589....
}

11: 52: 22.760 AM outlined_flag newChatMessageTrigger
Function execution took 604 ms, finished with status: 'ok'

11: 52: 22.252 AM outlined_flag newChatMessageTrigger
Billing account not configured.External network is not accessible and quotas are severely limited.Configure billing account to remove these restrictions

11: 52: 22.252 AM outlined_flag newChatMessageTrigger
Function execution started

我寫信給Firebase支持,問題出在消息類型上。 在Firebase中,我們有兩種消息類型:數據和通知。 在這種情況下,我們應該使用類型通知( 請參閱文檔 )。

有效負載應如下所示:

var payload = {
    notification: {
        title: options.title,
        body: options.text,
    },
    data: {
        type: options.type,
    }
};

我認為這與您的有效載荷有關。

使用您的firebase函數嘗試一次此有效負載,並讓我知道您是否在iOS上收到通知。

var payload = {
        data: {
            title: "Welcome to My Group",
            message: "You have new messages"
        }
    };

暫無
暫無

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

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