firebase.messaging() 导致 PWA 锁定 IOS

firebase.messaging() causes PWA to lock up on IOS

我刚刚开发了一个 NUXTJS 应用作为 PWA,它在我的 android 和笔记本电脑上运行良好。但它不适用于 IOS 设备。我将其打包并将其部署到 firebase 托管。 这是我在 IOS 设备上看到的,我不确定如何调试它。它只是一个永远持续的橙色加载图标。该应用已在 iPhone 和 Ipad 上使用 chrome 浏览器和 safari 进行了测试。

我以前开发过其他 NUXTjs 应用程序,并完成了将其部署到 firebase 托管的相同过程,它适用于 IOS 和 Android。所以我相信,一定是我添加的一些包导致它变成这样。有人能给我指出正确的方向,告诉我如何在 iphone 或 ipad 上进行调试。如果我可以访问控制台以查看打印输出,那将非常有帮助。仅供参考,我没有 MAC

我找到了罪犯。

在我的 firebase init.js 文件中

import * as firebase from "firebase/app";
import "firebase/auth";
import "firebase/firestore";
import "firebase/database";
import "firebase/storage";
import "firebase/messaging";

var config = {
  //settings
};

!firebase.apps.length ? firebase.initializeApp(config) : "";
export const GoogleProvider = new firebase.auth.GoogleAuthProvider();
export const auth = firebase.auth();
export const persistencetype = firebase.auth.Auth.Persistence.LOCAL;

export const firestoreDB = firebase.firestore().collection("").doc("");
export const firestore = firebase.firestore;
export const storage = firebase.app().storage("");

export const messaging = firebase.messaging(); // THIS IS THE OFFENDING LINE

export default firebase;

出于某种原因,export const messaging = firebase.messaging() 在 IOS 上不起作用 也许 Firebase 团队的某个人可以对此有所说明? 我正在使用版本“firebase”:“^7.14.3”,

    "@firebase/messaging": {
      "version": "0.6.15",
      "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.6.15.tgz",
      "integrity": "sha512-WswV3JtxAgqc0LPQtIBdMWJdMhVZu7gKF6MO5ETIpNaLZZ0QayYNu5+G9btoZz218HB/gvUp2NFX43OWAsqdZw==",
      "requires": {
        "@firebase/component": "0.1.11",
        "@firebase/installations": "0.4.9",
        "@firebase/messaging-types": "0.4.4",
        "@firebase/util": "0.2.46",
        "idb": "3.0.2",
        "tslib": "1.11.1"
      }
    },

我在这个 repo 中复制了这个问题 https://github.com/limjix/firebasecloudmessagingbug