我正在尝试在我的项目中集成FCM通知。我的后端采用Cloud Function,应用在安卓上运行。 以下是用于发送通知的Cloud代码:
exports.notificationTest = functions.database.ref(`/test/childA/childB/status`).onUpdate(event => {
const status = event.data.val();
console.info("Processing notificationTest cloud function")
console.info(`status : ${status}`)
const token = "EnterYourNotificationTokenHere"
const randomNum = Math.floor(Math.random() * 100)
var message = {
notification: { title : "My App", body : `Notification Test ${randomNum}`}
}
console.info(`Sending message on notification token`)
return admin.messaging().sendToDevice(token, message)
.then((response) => {
console.info("Successfully sent notification")
}).catch(function(error) {
console.warn("Error sending notification " , error)
})
})
在原生Android应用中,我会以几分钟的间隔多次接收到推送通知。这里我看到的通知是这样的:
Notification Test 30
然后在之前的通知时间2、4、8、16、32分钟后,我再次收到以下消息。
Notification Test 30
我认为我不需要在这里粘贴日志,因为代码肯定只会执行一次(因为通知中的随机数是不变的)。
那么,为什么会发生这种情况,如何解决?
以下是我的环境:
Native Android App
Using Android 7
Latest Android Studio Stable
Android Gradle Plugin - 3.1.1
Gradle - 4.1
Firebase-Ui - 3.1.0
Play Services - 11.4.2
请在上述环境中尝试复现。