【问题标题】:How to fix "Cannot read property 'firestore' of null" in Firestore如何在 Firestore 中修复“无法读取 null 的属性‘firestore’”
【发布时间】:2019-10-19 02:52:27
【问题描述】:

我将尝试更改 firestore() 函数中的设置,但不起作用。 我阅读了文档,他们说这个未来将在未来的版本中被删除,但我没有看到解决方案。所以我希望有人能帮我解决这个问题

操作系统版本:Majove 10.14.2 库版本:^6.1.0 Firebase 产品:firestore

import * as firebase from 'firebase/app'
import 'firebase/firestore'
require('dotenv').config({ encoding: 'utf8' })

const firebaseConfig = {
  apiKey: process.env.API_KEY,
  authDomain: process.env.AUTH_DOMAIN,
  databaseURL: process.env.DATABASE_URL,
  projectId: process.env.PROJECT_ID,
  storageBucket: process.env.STORAGE_BUCKET,
  messagingSenderId: process.env.MESSAGING_SENDER_ID,
  appId: process.env.APP_ID
}

// Initialize Firebase
let firebaseApp = null
if (!firebase.app.length) {
  firebaseApp = firebase.initializeApp(firebaseConfig)
}
firebaseApp.firestore().settings({
  ssl: false,
  timestampsInSnapshots: true
})

export default firebaseApp.firestore()

【问题讨论】:

    标签: firebase google-cloud-firestore nuxt.js


    【解决方案1】:

    https://firebase.google.com/docs/web/setup

    初始化firebase的基本方法是这样的。

    import firebase from "firebase/app";
    import "firebase/auth";
    import "firebase/firestore";
    import "firebase/functions";
    import "firebase/storage";
    import "firebase/messaging";
    import "firebase/performance";
    
    const config = {
      // set your config here
    };
    
    if (!firebase.apps.length) {
      firebase.initializeApp(config);
    }
    
    const auth = firebase.auth();
    const storage = firebase.storage();
    const functions = firebase.functions();
    const firestore = firebase.firestore();
    let messaging = null;
    try {
      if (firebase.messaging.isSupported()) {
        messaging = firebase.messaging();
        messaging.usePublicVapidKey("your publicVapidKey here");
      }
    } catch (e) {}
    const perf = firebase.performance();
    
    export { firebase, auth, storage, functions, firestore, messaging };
    

    我编辑了你的代码。

    import firebase from 'firebase/app'
    import 'firebase/firestore'
    require('dotenv').config({ encoding: 'utf8' })
    
    const firebaseConfig = {
      apiKey: process.env.API_KEY,
      authDomain: process.env.AUTH_DOMAIN,
      databaseURL: process.env.DATABASE_URL,
      projectId: process.env.PROJECT_ID,
      storageBucket: process.env.STORAGE_BUCKET,
      messagingSenderId: process.env.MESSAGING_SENDER_ID,
      appId: process.env.APP_ID
    }
    
    if (!firebase.apps.length) {
      firebase.initializeApp(firebaseConfig)
    }
    const firestore = firebase.firestore();
    firestore.settings({
      ssl: false,
      timestampsInSnapshots: true
    })
    
    export default firestore;
    

    【讨论】:

    • 我编辑了我的答案。你能试试基本的方法吗,或者请告诉我一个错误细节。
    • 是的,我试试你们俩。案例 1:使用基本方式 => ReferenceError: window is not defined 案例2:你编辑了我的代码 => Function Firestore.settings() 要求它的第一个参数是对象类型,但它是:一个自定义的 Object 对象希望你能继续帮助我!
    猜你喜欢
    • 2020-03-27
    • 1970-01-01
    • 1970-01-01
    • 2023-01-12
    • 2019-05-22
    • 2020-02-06
    • 1970-01-01
    • 2019-06-07
    • 2019-05-21
    相关资源
    最近更新 更多