Search code examples
javascriptfirebasefirebase-cloud-messagingservice-workerkaios

Firebase Cloud Messaging - getToken() error in JS SDK


I am developing an app for KaiOS, a fork of the old Firefox OS, for which apps are based on HTML5 + JS. When compiling and running on device, Firebase Cloud Messaging stops working. I receive an error as follows.

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

I've followed the instructions in the Firebase docs here as well as this tutorial on setting up FCM for Progressive Web Apps here. I can confirm I am setting my key before calling getToken, as shown below:

import firebase from "firebase";

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

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

I have searched for the above error, but to no avail. Does anyone know what this error means or how to fix it? Running the application in the browser on my development machine, everything works perfectly.

Note: the app is written in Typescript Firebase SDK Version: 7.12.0


Solution

  • It might not be of help to you but I recently experienced a similar error message in a different environment:

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

    It was fixed in version 7.13.2 of Firebase:

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

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