此处的规范:使用Firebase推送通知
我可以获得注册令牌。然后,我尝试使用该令牌从Firebase测试通知模块发送通知。每次我在设备上运行应用程序时,都会收到警报-
“消息:onNotification回调已成功注册:确定”
但是当我尝试从App触发它时,它是行不通的。
但是没有调用第一个函数[我要在其中获取通知的函数]。我找不到我犯错的地方。
exports.requestNotifications = functions.database.ref('Notifications/{user_Id}/unread/{notificationId}').onWrite((change, context)=> {
var user_Id = context.params.user_Id;
var notifyData = change.after.val();
var sender_id = notifyData.Id
var fromUserQueryName = admin.database().ref(`/users/${sender_id}/Name`).once('value');
var userDeviceToken = admin.database().ref(`/users/${user_Id}/pushToken`).once('value');
return Promise.all([fromUserQueryName, userDeviceToken]).then(result => {
var fromUserDisplayName = result[0].val();
var userDisplayToken = result[1].val();
const payload = {
notification: {
title: 'New Friend Request!',
body: `${fromUserDisplayName} Sent You Request.`,
icon: 'assets/imgs/chatme.png',
sound: 'default'
}
};
return admin.messaging().sendToDevice(userDisplayToken, payload)
.then(response => {
console.log('Notification sent')
})
.catch(error => {
console.log('Error sending Notification')
})
})
// })
})
exports.conversationNotifications = functions.database.ref('Conversations/{user_Id}/{conversationId}').onWrite((change, context)=> {
var user_Id = context.params.user_Id;
var conversationId = context.params.conversationId;
var messageData = change.after.val();
var message = admin.database().ref(`/Conversations/${user_Id}/${conversationId}/message`).once('value');
var senderId = admin.database().ref(`/Conversations/${user_Id}/${conversationId}/Id`).once('value');
return Promise.all([message, senderId]).then(result => {
var messageDisplay = result[0].val();
var senderIdDisplay = result[1].val();
var fromUserQueryName = admin.database().ref(`/users/${senderIdDisplay}/Name`).once('value');
var userDeviceToken = admin.database().ref(`/users/${user_Id}/pushToken`).once('value');
return Promise.all([fromUserQueryName, userDeviceToken]).then(result => {
var fromUserDisplayName = result[0].val();
var userDisplayToken = result[1].val();
const payload = {
notification: {
title: fromUserDisplayName,
body: messageDisplay,
icon: 'assets/imgs/chatme.png',
sound: 'default'
}
};
return admin.messaging().sendToDevice(userDisplayToken, payload)
.then(response => {
console.log('message sent')
})
.catch(error => {
console.log('Error sending message')
})
})
})
})
Send push notifications over phone