为什么订阅 "Web Push" 会为您提供 Firebase FCM 端点?我什至没有付过 Firebase 任何钱
Why would subscribing to "Web Push" provide you a Firebase FCM endpoint? I haven't even paid Firebase any money
如果我使用 VAPID public 密钥订阅网络推送,它将如下所示:
navigator.serviceWorker.register('/service-worker.js').then((sw) => {
sw.pushManager
.subscribe({
userVisibleOnly: true,
applicationServerKey: urlB64ToUint8Array(vapidPublicKey),
})
.then((subscription) => {
console.log(subscription); // This will log fcm endpoint!
});
});
然后我会取回这个负载。
{
"endpoint": "https://fcm.googleapis.com/fcm/send/...", // confusing part
"expirationTime": null,
"keys": {
"p256dh": "...",
"auth": "..."
}
}
为什么端点是fcm?
更让我困惑的是,我可以在我的后端代码中开始为这个订阅对象发送推送通知,而且它会起作用!
我没有创建任何 firebase 帐户或项目,也没有向 firebase 支付任何费用。
这是什么原因造成的?
我可以在生产环境中使用网络推送而无需支付 Firebase 费用吗?
The Push API / Web Push 是一种浏览器标准。这就是为什么。
Google Chrome 使用 Firebase 在后台实现推送 API,但您无需处理专有的 Firebase 功能即可使用推送 API.
每个浏览器使用不同的服务,但 Push API 为网络开发人员提供了一个标准接口。
如果我使用 VAPID public 密钥订阅网络推送,它将如下所示:
navigator.serviceWorker.register('/service-worker.js').then((sw) => {
sw.pushManager
.subscribe({
userVisibleOnly: true,
applicationServerKey: urlB64ToUint8Array(vapidPublicKey),
})
.then((subscription) => {
console.log(subscription); // This will log fcm endpoint!
});
});
然后我会取回这个负载。
{
"endpoint": "https://fcm.googleapis.com/fcm/send/...", // confusing part
"expirationTime": null,
"keys": {
"p256dh": "...",
"auth": "..."
}
}
为什么端点是fcm?
更让我困惑的是,我可以在我的后端代码中开始为这个订阅对象发送推送通知,而且它会起作用!
我没有创建任何 firebase 帐户或项目,也没有向 firebase 支付任何费用。
这是什么原因造成的?
我可以在生产环境中使用网络推送而无需支付 Firebase 费用吗?
The Push API / Web Push 是一种浏览器标准。这就是为什么。
Google Chrome 使用 Firebase 在后台实现推送 API,但您无需处理专有的 Firebase 功能即可使用推送 API.
每个浏览器使用不同的服务,但 Push API 为网络开发人员提供了一个标准接口。