node.js - ReferenceError:firebase_app__WEBPACK_IMPORTED_MODULE_0__ 未在 userFunction(Autodesk 的查看器)中定义
问题描述
我由 webpack 创建的 app.bundle.js 正在发挥作用:
/* harmony import */ var firebase_app__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(10);
/* harmony import */ var firebase_firestore__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(16);
var firebaseConfig = {
//config options for database
}; // Initialize Firebase
var defaultProject = firebase_app__WEBPACK_IMPORTED_MODULE_0__.default.initializeApp(firebaseConfig);
var defaultFirestore = defaultProject.firestore();
console.log("Firebase globals: ", firebase_app__WEBPACK_IMPORTED_MODULE_0__.default);
function userFunction(pdb) {
console.log("Firebase globals inside function: ", firebase_app__WEBPACK_IMPORTED_MODULE_0__.default);
}
如您所见firebase_app_WEBPACK_IMPORTED_MODULE_0__
,在顶部定义了,但是当加载网页错误ReferenceError: firebase_app__WEBPACK_IMPORTED_MODULE_0__
未定义时突然弹出。
更新: 我实际上发现了错误,基本上我正在使用Autodesk 的 Forge Viewer Library,它在某些时候调用我的函数 userFunction,userFunction 需要 firebase 一次性处理列表,遗憾的是这个函数是在 webworker 中执行的(异步)这意味着我不能轻易地引用函数范围之外的变量。
解决方案
您必须为要使用的每个 Firebase SDK 添加导入。
import firebase from 'firebase/app'
import 'firebase/storage'
import 'firebase/analytics'
import ....
如果您已经这样做了,您还需要它们在反应项目中的顺序正确
正确的顺序:
import './initializedFirebase'
import App from './App'
如果您在 initializeFirebase.js 之前导入 App.jsx,则在初始化之前使用 firebase.storage()。
还可以考虑升级您的 Firebase 版本,这可以解决许多问题。
推荐阅读
- javascript - 如何仅在开发版本中进行客户端日志记录
- vb.net - 如何在 dataset.relations 上与同一个表(使用不同的列)建立 2 个关系?
- reactjs - 如何使用 redux 和 reactjs 应用 CRUD 黄金布局?
- pdf - 我应该在 UWP 中使用哪个库来创建 PDF 编辑器工具?
- javascript - 如何在 Odoo 的路由页面中使用 CSS 和 JS 资源?
- php - 避免 Woocommerce 中特定产品类别的购物车商品价格更新
- mysql - Liquibase 无法正确创建字段
- performance - 仅将谷歌云用于数据库
- android - RecyclerView 中的稳定 ID 和 ViewType
- odoo - Odoo 11(文档类型:sale.order.line,操作:读取)