私はあなたのようでした。私は「サーバーでやってください」以外はまっすぐな答えを見ることができませんでした。ここで
私の方法:
1)あなたがアプリを起動後Firebaseリアルタイムデータベースにゼロに(変数はあなたが欲しいものは何でも、それを呼び出すことができます)バッジを設定する必要があります。プラスここで設定application.applicationIconBadgeNumber = 0は、私はAppDelegateでそれを行う方法です。
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
application.applicationIconBadgeNumber = 0
// Reset badge number to zero
let userID = Auth.auth().currentUser?.uid
let dbRef = Database.database().reference()
dbRef.child("Users Info").child(userID!).updateChildValues(["badge":"0"], withCompletionBlock: { (err, ref) in
if err != nil {
print(err!)
return
}
})
}
2)関数がトリガされindex.jsに移動します。
...
return admin.database().ref('/Users Info/' + owner).once('value', snapshot => {
var ownerValue = snapshot.val();
var badgeNumber = parseInt(ownerValue.badge) + 1;
// Notification details.
const payload = {
notification: {
title: 'You have a new request!',
body: `A new request from ${downedBy.name}.`,
badge:`${badgeNumber}`,
sound: 'default',
}
};
...
...
// Upload the new value of badge into Firebase to keep track of the number
return admin.database().ref('/Users Info/' + owner).update({badge:badgeNumber});
...
})