无法在下一个 js 上读取 firebase 中未定义的属性“长度”

Posted

技术标签:

【中文标题】无法在下一个 js 上读取 firebase 中未定义的属性“长度”【英文标题】:Cannot read property 'length' of undefined in firebase on next js 【发布时间】:2021-12-09 13:34:43 【问题描述】:

我在下一个 js 中使用 firebase,但它给出了一个错误消息

TypeError:无法读取未定义的属性“长度” 无论如何我可以解决这个错误。

这是我的 Firebase 配置文件

import * as firebase from "firebase/app";
import 'firebase/firestore'
const firebaseConfig = 
  apiKey: "AIzaSyD0Kz7iRs6WKSXO6Iw2hEeDFeRcDGERmV8",
  authDomain: "facebook-clone-1870b.firebaseapp.com",
  projectId: "facebook-clone-1870b",
  storageBucket: "facebook-clone-1870b.appspot.com",
  messagingSenderId: "924586129038",
  appId: "1:924586129038:web:1d4204813a4956bd353bdf"
;

const app = !firebase.apps.length
    ? firebase.initializeApp(firebaseConfig)
    : firebase.app();

const db = app.firestore();
const storage = firebase.storage();

export  db,storage;

这是错误信息

.next\server\pages\index.js (12:13) @ Object../firebasec.js

  10 | ;
  11 | 
> 12 | const app = !firebase.apps.length
     |             ^
  13 |     ? firebase.initializeApp(firebaseConfig)
  14 |     : firebase.app();

Package.json 文件


  "name": "my-app",
  "version": "0.1.0",
  "private": true,
  "scripts": 
    "dev": "next dev",
    "build": "next build",
    "start": "next start",
    "lint": "next lint"
  ,
  "dependencies": 
    "@heroicons/react": "^1.0.4",
    "firebase": "^9.1.3",
    "next": "11.1.2",
    "next-auth": "^3.29.0",
    "react": "17.0.2",
    "react-dom": "17.0.2"
  ,
  "devDependencies": 
    "autoprefixer": "^10.3.7",
    "eslint": "7.32.0",
    "eslint-config-next": "11.1.2",
    "postcss": "^8.3.11",
    "tailwindcss": "^2.2.17"
  

【问题讨论】:

package.json 上的 Firebase 版本是什么? firebase 版本是 9.1.3 【参考方案1】:

您的代码似乎有 firebase v8 而您有 firebase v9 包,并且它具有完全不同的导入结构。当您使用 v8 遵循一些教程并安装 firebase 时会发生这种情况很多,因此默认情况下它会获得最新版本,即 v9

你应该怎么做:

1- 删除当前版本

npm rm firebase

2- 安装最新的 8.x

npm install firebase@8.9

【讨论】:

@Jeevan 不客气,接受并投票会很好

以上是关于无法在下一个 js 上读取 firebase 中未定义的属性“长度”的主要内容,如果未能解决你的问题,请参考以下文章

无法读取 discord.js 中未定义的属性“发送”

TypeError:无法读取反应js中未定义的属性'fn'

Discord.js - 无法读取 execute() 方法中未定义的属性

无法读取 Ionic 中未定义错误的属性“清单”

无法读取 Node JS 中未定义的属性“名称”

无法读取 node.js 中未定义的属性“then”?