Harry Tran
Harry Tran

Reputation: 11

How to fix "Cannot read property 'firestore' of null" in Firestore

I will try to change the setting in the function of firestore() but doesn't work. I read the document and they said that this future will be removed in a future release but I don't seen the solve. So I hope anyone can help me settle this problem

Operating System version: Majove 10.14.2 Library version: ^6.1.0 Firebase Product: 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()

Upvotes: 0

Views: 2033

Answers (1)

zkohi
zkohi

Reputation: 2520

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

Basic way to initialize firebase is this.

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 };

I edited your code.

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;

Upvotes: 1

Related Questions