You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Electron使用Electron Forge+Webpack5集成Firebase Firestore与Storage报错如何解决

报错截图

  • 第一个报错
  • 第二个报错
  • 第三个报错

解决方案

1. 补全Webpack 5 Node核心模块polyfill

Webpack 5默认不再自动提供Node.js核心模块的浏览器侧polyfill,Firebase Firestore、Storage依赖crypto、stream、buffer等核心模块,需在Webpack配置中新增对应配置:
首先安装依赖包:

npm install crypto-browserify stream-browserify path-browserify os-browserify buffer process

修改webpack.config.js配置:

const webpack = require('webpack')

module.exports = {
  // 保留原有配置不变
  resolve: {
    fallback: {
      "crypto": require.resolve("crypto-browserify"),
      "stream": require.resolve("stream-browserify"),
      "path": require.resolve("path-browserify"),
      "os": require.resolve("os-browserify/browser"),
      "buffer": require.resolve("buffer/"),
      "fs": false,
      "net": false,
      "tls": false
    }
  },
  plugins: [
    new webpack.ProvidePlugin({
      Buffer: ['buffer', 'Buffer'],
      process: 'process/browser'
    })
  ]
}

2. 修正CSP安全规则

当前的CSP配置缺少Firestore实时连接、Storage资源访问所需的源规则,调整Content-Security-Policy字段如下:

"Content-Security-Policy": [
  "default-src 'self' 'unsafe-eval' 'unsafe-inline' http://localhost:9099/ https://*.googleapis.com https://*.firebaseio.com https://*.firestore.googleapis.com https://*.storage.googleapis.com https://*.firebaseapp.com; object-src 'self'; img-src 'self' data: https://*.storage.googleapis.com; connect-src 'self' http://localhost:9099/ https://*.googleapis.com wss://*.firestore.googleapis.com wss://*.firebaseio.com https://*.storage.googleapis.com;"
],

新增规则覆盖了Firestore WebSocket连接、Storage对象存储资源访问的需求,避免请求被CSP拦截。

3. 检查Firebase SDK打包配置

不要在Webpack的externals配置中排除firebase相关包,确保渲染进程打包时完整引入Firestore、Storage的依赖模块,避免模块引用异常。


内容的提问来源于stack exchange,提问作者Denis Dombrovski

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.02 02:06:06