【问题标题】:Next JS firebase TypeError: firebase_app__WEBPACK_IMPORTED_MODULE_1__.storage is not a functionNext JS firebase TypeError: firebase_app__WEBPACK_IMPORTED_MODULE_1__.storage is not a function
【发布时间】:2021-11-19 05:24:03
【问题描述】:
import * as firebase from 'firebase/app';
import 'firebase/firestore';
import 'firebase/storage';

已经在此处添加了 firestore 导入,从而解决了大多数其他人的问题

const clienteCredentials = {
    apiKey: process.env.NEXT_PUBLIC_FIREBASE_API_KEY,
authDomain: process.env.NEXT_PUBLIC_FIREBASE_AUTH_DOMAIN,
projectId: process.env.NEXT_PUBLIC_FIREBASE_PROJECT_ID,
storageBucket: process.env.NEXT_PUBLIC_FIREBASE_STORAGE_BUCKET,
messagingSenderId: process.env.NEXT_PUBLIC_FIREBASE_MESSAGING_SENDER_ID,
appId: process.env.NEXT_PUBLIC_FIREBASE_APP_ID,
measurementId: process.env.NEXT_PUBLIC_FIREBASE_MEASUREMENT_ID
};

export default function initFirebase() {
  if (!firebase.apps.length){
      firebase.initializeApp(clienteCredentials);
  }
}

在这里不断收到错误:

    const projectStorage = firebase.storage();
    const projectFirestore = firebase.firestore();


export { projectFirestore, projectStorage };

【问题讨论】:

    标签: javascript firebase next.js firebase-storage


    【解决方案1】:

    如果您使用的是 Firebase V9.0.0+,那么您可以使用 compat 版本来继续使用现有代码(V8 名称空间语法):

    import firebase from "firebase/compat/app"
    import "firebase/compat/storage"
    import "firebase/comapt/firestore"
    

    我推荐upgrading to new Modular Syntax,它有一定的好处并支持摇树。较新的语法如下所示:

    import { initializeApp } from "firebase/app" // no compat
    import { getFirestore } from "firebase/firestore"
    import { getStorage } from "firebase/storage"
    
    const app = initializeApp({...config})
    
    const firestore = getFirestore(app)
    const storage = getStorage(app)
    

    请查看documentation,其中包含旧语法和新语法的示例。

    【讨论】:

    • 谢谢,绝对是这样。对新语法一无所知,现在一切都说得通了!救世主
    • 完成,再次感谢您。让我免于很多头痛哈哈
    猜你喜欢
    • 2021-03-14
    • 2020-08-09
    • 2021-11-16
    • 2019-10-17
    • 2020-03-01
    • 1970-01-01
    • 2017-11-19
    • 2021-10-08
    • 2019-10-02
    相关资源
    最近更新 更多