javascript - Firebase 已在全局范围内定义。请确保 Firebase 库只加载一次
问题描述
我在控制台中收到此警报 2 次,我检查了网络,在加载主页时,它注册了两个相同的事件,如图所示,一个和另一个之间的唯一区别是版本,一个是 6.6.1那是我目前拥有的,和7.15.4(我的项目中没有安装,也没有任何配置,我在整个项目中寻找它,它既不在package.json中也不在 lock.json 中,完全没有关于那个版本,我希望你停止向我显示那个警告而不是那个。
我调用firebase的唯一设置是这个文件
importScripts('https://www.gstatic.com/firebasejs/6.6.1/firebase-app.js');
importScripts('https://www.gstatic.com/firebasejs/6.6.1/firebase-messaging.js');
firebase.initializeApp({
messagingSenderId: "xxxxxxxxxxx"
});
const messaging = firebase.messaging();
console.log('Handling background message')
messaging.setBackgroundMessageHandler(function(payload) {
console.log('Handling background message ', payload);
return self.registration.showNotification(payload.data.title, {
body: payload.data.body,
icon: payload.data.icon,
data: {
click: payload.data.click,
userId: payload.data.userId,
pushId: payload.data.pushId,
}
});
});
self.addEventListener('notificationclick', function(event) {
event.notification.close();
event.waitUntil(self.clients.openWindow(event.notification.data.click));
})
而这个,在 index.html 中
<script src="https://www.gstatic.com/firebasejs/6.6.1/firebase-app.js"></script>
<script src="https://www.gstatic.com/firebasejs/6.6.1/firebase-messaging.js"></script>
<script>
try {
window
.firebase
.initializeApp({
apiKey: "%REACT_APP_FIREBASE_ANALYTICS_API_KEY%",
authDomain: "%REACT_APP_FIREBASE_ANALYTICS_AUTH_DOMAIN%",
databaseURL: "%REACT_APP_FIREBASE_ANALYTICS_DATABASE_URL%",
projectId: "%REACT_APP_FIREBASE_ANALYTICS_PROJECT_ID%",
storageBucket: "%REACT_APP_FIREBASE_ANALYTICS_STORAGE_BUCKER%",
messagingSenderId: "%REACT_APP_FIREBASE_ANALYTICS_MESSAGING_SENDER_ID%",
appId: "%REACT_APP_FIREBASE_ANALYTICS_APP_ID%",
measurementId: "%REACT_APP_FIREBASE_ANALYTICS_MEASUREMENT_ID%"
})
} catch (e) {
console.error(e)
}
</script>
解决方案
我不完全确定您是如何加载文件的,但是如果它们彼此独立,则两者
<script src="https://www.gstatic.com/firebasejs/6.6.1/firebase-app.js"></script>
和
importScripts('https://www.gstatic.com/firebasejs/6.6.1/firebase-app.js');
正在获取火力基地。如果两个文件都在使用,您应该只保留一个。
推荐阅读
- android - 恢复出厂设置或首次启动后如何运行服务?
- javascript - 使用react-input-trigger,按下@时如何显示所有选项的列表?
- phpmailer - phpmailer 多个 addAddress 无法实例化邮件功能
- java - 玩!框架升级并发症
- java - PDF查看填写pdf表格
- r - R bind_rows() 错误:参数 1 必须有名称
- django - 如何在 Django 中处理文件处理请求?
- ios - 推送时出现大标题导航栏和搜索栏的错误
- azure - Azure Functions 消费计划命名
- python - 在 Windows 10 中安装和运行 Auto-Sklearn