gpt4 book ai didi

javascript - 服务 worker 安装过程中的 Firebase 消息警告消息

转载 作者:行者123 更新时间:2023-12-01 15:38:11 25 4
gpt4 key购买 nike

我正在使用 firebase 推送网络通知,我的文件 firebase-messaging-ws.js是这样的:


importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-messaging.js');


fetch('./firebase-data.json')
.then(r => r.json())
.then(fbData => {
let app = firebase.initializeApp(fbData);
firebase.messaging(app);
console.log('Firebase Service Worker loaded for projectId:', fbData.projectId);
}).catch(err => {
console.error('Error configuring firebase messaging: ', err)
});
我正在使用一个 json 文件, firebase-data.json加载 firebase 配置数据并且它工作正常,我可以接收推送通知,但是当我调用 firebase.messaging() 时,控制台中会出现几个日志警告,如果我使用本地对象(没有 fetch() 命令),那么一切正常,并且没有警告消息。
日志消息类似于 Event handler of 'XXX' event must be added on the initial evaluation of worker script. :
enter image description here
当我使用外部文件加载 firebase 配置数据时,我可以避免警告消息吗?

最佳答案

基本上,服务 worker 脚本需要同步执行,这意味着您无法在 promise 中初始化 Firebase 消息传递。
在这里吐痰,这是未经测试的,但试试这个:

importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-messaging.js');

const response = await fetch('./firebase-data.json');
const fbData = await response.json();

let app = firebase.initializeApp(fbData);
firebase.messaging(app);
console.log('Firebase Service Worker loaded for projectId:', fbData.projectId);
或者,如果它不喜欢在 async 函数之外等待,请使用 JavaScript 导出您的配置数据并使用 importScripts 将其公开给您的服务 worker :
firebase-data.js
const fbData = {...};
firebase-messaging-ws.js
importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/7.19.0/firebase-messaging.js');
importScripts('./firebase-data.js');

let app = firebase.initializeApp(fbData);
firebase.messaging(app);
console.log('Firebase Service Worker loaded for projectId:', fbData.projectId);

关于javascript - 服务 worker 安装过程中的 Firebase 消息警告消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63651545/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com