push-notification - pushsubscription 在使用 requestSubscription() 时提供选项而不是键
问题描述
我正在尝试按照本教程在我的 PWA 中启用推送通知。根据教程,我应该得到一个这样的 pushSubscription 对象:
{
"endpoint": "https://fcm.googleapis.com/fcm/send/cbx2QC6AGbY:APA91bEjTzUxaBU7j-YN7ReiXV-MD-bmk2pGsp9ZVq4Jj0yuBOhFRrUS9pjz5FMnIvUenVqNpALTh5Hng7HRQpcUNQMFblTLTF7aw-yu1dGqhBOJ-U3IBfnw3hz9hq-TJ4K5f9fHLvjY",
"expirationTime": null,
"keys": {
"p256dh": "BOXYnlKnMkzlMc6xlIjD8OmqVh-YqswZdut2M7zoAspl1UkFeQgSLYZ7eKqKcx6xMsGK7aAguQbcG9FMmlDrDIA=",
"auth": "if-YFywyb4g-bFB1hO9WMw=="
}
}
但是,当我检查我的订阅对象时,我会得到以下形式的东西
{
"endpoint": "https://fcm.googleapis.com/fcm/send/cbx2QC6AGbY:APA91bEjTzUxaBU7j-YN7ReiXV-MD-bmk2pGsp9ZVq4Jj0yuBOhFRrUS9pjz5FMnIvUenVqNpALTh5Hng7HRQpcUNQMFblTLTF7aw-yu1dGqhBOJ-U3IBfnw3hz9hq-TJ4K5f9fHLvjY",
"expirationTime": null,
"options": {
"applicationServerKey": ArrayBuffer(65),
"userVisibleOnly": true
}
}
请注意,我没有得到键对象,而是得到一个选项对象。pushSubscription 对象的属性是否已更改?如果我用它来发送通知,它还能工作吗?
解决方案
当使用 Mongoose 保存我的 pushSubscription 对象时,我使用keys
而不是options
If I then 检查我的数据库中的对象(在我的情况下是 MLab)它看起来像
{
"endpoint": "https://fcm.googleapis.com/fcm/send/cbx2QC6AGbY:APA91bEjTzUxaBU7j-YN7ReiXV-MD-bmk2pGsp9ZVq4Jj0yuBOhFRrUS9pjz5FMnIvUenVqNpALTh5Hng7HRQpcUNQMFblTLTF7aw-yu1dGqhBOJ-U3IBfnw3hz9hq-TJ4K5f9fHLvjY",
"expirationTime": null,
"keys": {
"p256dh": "BOXYnlKnMkzlMc6xlIjD8OmqVh-YqswZdut2M7zoAspl1UkFeQgSLYZ7eKqKcx6xMsGK7aAguQbcG9FMmlDrDIA=",
"auth": "if-YFywyb4g-bFB1hO9WMw=="
}
}
我猜我控制台中的对象的可视化方式不同,因此向我显示了选项参数而不是键。
推荐阅读
- roc - 为什么 roc.test() 中 AUC 的估计结果与原始结果不一致?
- bitcoin - 将收款地址添加到我的钱包后,我需要备份钱包吗?
- ssh - 通过多跳的 SSH 隧道
- javascript - 在 React 中,Id 传入 URL 参数,但没有获取 API 参数,甚至没有命中 API
- flutter - 无法读取 null 的属性“getPositionForOffset$1”
- plugins - 当我尝试添加新插件时,没有在 Jmeter 插件管理器选项卡中查看全屏
- android - 如何复制android分区并恢复已删除的数据?
- discord.py - discord.py 在发送消息后接收到消息的链接
- azure - Azure AD oAuth 跳过 2FA 并失败并出现 AADSTS50076 错误代码
- laravel - 用户自身关系 hasMany(父/子)返回 null