1

現在、ペイロードは1つのバッジカウントのみを送信しますが、バッジカウントの値は増加しません。 1つ以上の通知があっても、1のままです。ファイヤーベースクラウド機能でバッジカウントを増やす方法

どのようにJavaScriptを記述する必要がありますか?

私の現在のコード:

const functions = require('firebase-functions');     
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 
exports.sendPushForHelp = 
functions.database.ref('/help/school/{id}').onWrite(event => { 
    const payLoad = { 
    notification: { 
     title: 'Someone', 
     body: 'needs help', 
     badge: '1', 
     sound: 'Intruder.mp3' 
    } 
    }; 
    return admin.database().ref('fcmToken').once('value').then(allToken => { 
     if (allToken.val()) { 
     const token = Object.keys(allToken.val()); 
     return admin.messaging().sendToDevice(token, payLoad).then(response => { 

      }); 
     }; 
    }); 
}); 
+0

インクリメンタルintを作成し、const payLoadの 'badge'値をそれに等しい値に設定することはできませんか? – Surreal

+0

xcode(インクリメントコード)にインクリメンタルintを含める必要があるということです。そして、その変数をペイロードに使用する必要があります。バッジを言うことができます:バグカウント? – Lukayne

+0

これはうまくいくかもしれませんが、JSにvarを格納することを提案していました。 – Surreal

答えて

1

は、あなたがあなたのJSでbadgeCountを保存することができ、それがすべての呼び出しにインクリメントしている、または持っているか、何それをランダム化します

すなわち:

const functions = require('firebase-functions');     
const admin = require('firebase-admin'); 
admin.initializeApp(functions.config().firebase); 
var badgeCount = 1; 
exports.sendPushForHelp = 
functions.database.ref('/help/school/{id}').onWrite(event => { 
    const payLoad = { 
    notification: { 
     title: 'Someone', 
     body: 'needs help', 
     badge: badgeCount.toString(), 
     sound: 'Intruder.mp3' 
    } 
    }; 
    badgeCount++; //or whatever 
    return admin.database().ref('fcmToken').once('value').then(allToken => { 
     if (allToken.val()) { 
     const token = Object.keys(allToken.val()); 
     return admin.messaging().sendToDevice(token, payLoad).then(response => { 
      //here might be a good place to increment as well, only on success 
      }); 
     }; 
    }); 
}); 
関連する問題