subscribe - 提供的网络推送 applicationServerKey 无效
问题描述
我正在尝试通过以下功能订阅网络推送。
function postSubscriptionBo() {
return navigator.serviceWorker.register('/service-worker.js')
.then(function(registration) {
const subscribeOptions = {
userVisibleOnly: true,
applicationServerKey: APPLICATION_SERVER_KEY
};
return registration.pushManager.subscribe(subscribeOptions);
})
.then(function(pushSubscription) {
console.log('Received PushSubscription: ', JSON.stringify(pushSubscription));
return pushSubscription;
});
}
这些是当前步骤:
1.从 Firebase 控制台 > 云消息传递选项卡 >服务器密钥获取应用程序服务器密钥
2. 使用window.btoa(服务器密钥)编码的应用程序服务器密钥
3. 从服务器密钥中删除 tailing =
4. 浏览器抛出异常:提供的网络推送 applicationServerKey 无效。
关于我在这里做错了什么的建议?谢谢。
解决方案
在云消息选项卡中而不是使用服务器密钥,在生成 Web 推送证书公钥(在同一云消息选项卡的底部)并添加它而不是服务器密钥之后,它可以工作。
推荐阅读
- javascript - 如何将多个数组和一个字符串组合成一个数组?
- java - 在 GET 请求中使用 LocalDate 作为参数的 TypeMismatch 错误
- angular - 从父组件获取角度子组件的 offsetHeight
- groovy - 如何在groovy脚本中将常量字符串存储在单独的文件中
- apache-kafka - Kafka 序列化器和模式注册
- python - 将具有索引格式的大型 .json 文件读入 Pandas 数据帧
- c# - 我可以通过它的 processId 获取 chrome.exe 的 url 吗?
- bazel - 如何从 bazel 命令行传递 docker 图像标签
- javascript - 如何处理来自 reCaptcha v3 执行的拒绝?
- sql - SQL 在两列之间寻找值