来自 FCM 的成功响应,但没有通知
Posted
技术标签:
【中文标题】来自 FCM 的成功响应,但没有通知【英文标题】:Success response from FCM but no notification 【发布时间】:2018-04-08 17:15:31 【问题描述】:在客户端我请求许可并将令牌发送到服务器
messaging.requestPermission()
.then(function()
console.log('Notification permission granted.');
return messaging.getToken();
)
.then((token) =>
if (token)
const body = JSON.stringify(
token,
stopId: 'BKK_F02550',
routeId: 'BKK_0205',
);
const headers =
'Accept': 'application/json',
'Content-Type': 'application/json',
;
console.log(token, 'token');
fetch('/api/test', method: 'post', body, headers);
else
console.log('No Instance ID token available. Request permission to generate one.');
)
.catch(function(err)
console.log('Unable to get permission to notify.', err);
);
在服务器端,我将请求发送到 FCM:
app.post('/api/test', (req, res) =>
const body =
"to": req.body.token,
"notification":
"title":"Portugal vs. Denmark",
"body":"great match!"
const headers =
Authorization: `key=$serverKey`,
'Content-Type': 'application/json'
fetch('https://fcm.googleapis.com/fcm/send', body, headers)
.then(data => res.status(200).json(data))
.catch(error => console.log('failure', error))
)
我收到成功响应,但在客户端没有收到通知。我觉得响应对象的要点是:size: 0, timeout: 0。
【问题讨论】:
从服务器端,req.body.token
的值是多少?可以记录吗?
是的,我已经这样做了,而且两边的令牌值相同
【参考方案1】:
我不确定,但我认为您的客户端代码存在顺序问题。与return messaging.getToken()
返回一样;永远不会出现剩余的代码,你会看到,我试图在下面重新组织。 (我不确定下一个问题,但会在之后检查)。
messaging.requestPermission()
.then(function()
console.log('Notification permission granted.');
.then((token) =>
if (token)
const body = JSON.stringify(
token,
stopId: 'BKK_F02550',
routeId: 'BKK_0205',
);
const headers =
'Accept': 'application/json',
'Content-Type': 'application/json',
;
console.log(token, 'token');
fetch('/api/test', method: 'post', body, headers);
else
console.log('No Instance ID token available. Request permission to generate one.');
)
return messaging.getToken();
)
.catch(function(err)
console.log('Unable to get permission to notify.', err);
);
【讨论】:
我认为那位应该没问题,我得到一个令牌并将其传递给服务器端。以上是关于来自 FCM 的成功响应,但没有通知的主要内容,如果未能解决你的问题,请参考以下文章
Firebase FCM 推送通知停止工作 iOS 11.1.1
FCM iOS 项目未收到通知 - FCM 控制台显示成功但设备未收到