Firebase 云消息传递 - JS SDK 中的 getToken() 错误

Firebase Cloud Messaging - getToken() error in JS SDK

我正在为 KaiOS 开发一个应用程序,它是旧版 Firefox OS 的一个分支,其应用程序基于 HTML5 + JS。在设备上编译和 运行 时,Firebase 云消息传递停止工作。我收到如下错误。

TypeError: 'applicationServerKey' member of PushSubscriptionOptionsInit could not be converted to any of: ArrayBufferView, ArrayBuffer.

我已按照 Firebase 文档中的说明进行操作 here as well as this tutorial on setting up FCM for Progressive Web Apps here。我可以在调用 getToken 之前确认我正在设置我的密钥,如下所示:

import firebase from "firebase";

const messaging = firebase.messaging();
messaging.usePublicVapidKey("<my-key-from-firebase-settings>");

messaging.getToken().then((currentToken) => {
    ...
}).catch((err) => {
    ...
});

我已经搜索了上面的错误,但没有找到。有谁知道这个错误是什么意思或如何解决? 运行 在我的开发机器上的浏览器中的应用程序,一切正常。

注意:该应用程序是用 Typescript 编写的 Firebase SDK 版本:7.12.0

它可能对你没有帮助,但我最近在不同的环境中遇到了类似的错误消息:

Error: Failed to execute 'subscribe' on 'PushManager': The provided value is not of type '(ArrayBuffer or ArrayBufferView)'

已在 Firebase 7.13.2 版中修复:

https://github.com/firebase/firebase-js-sdk/issues/2712

https://firebase.google.com/support/release-notes/js#version_7132_-_april_2_2020