Home > Software design >  'Firebase Not Defined' An Answer For Version 9 Of Firebase
'Firebase Not Defined' An Answer For Version 9 Of Firebase

Time:10-17

Im trying to make a database call/post but im getting the error

functions.js:7 Uncaught ReferenceError: firebase is not defined

From my research it is my understanding that 'firebase' is defined in the firebase.js script file that is imported using the CDN code from the setting panel in Firebase.. But all the help pages i find are from 2014-2017 and version 9 of Firebase uses a completely different import language.. These pages are no help to me..

I am using the standard

import { initializeApp } from "https://www.gstatic.com/firebasejs/9.1.3/firebase-app.js";

Am I right in thinking that because this import is happening (and its seemingly is - firebase-app.js is showing up in the inspector) That firebase should be defined...

Or is firebase defined somewhere else and im missing something?? If this is the case where is firebase defined and how do i import it (with V9 Firebase)

Thanks

Edit: Im doing this all through a tutorial I found on Youtube, its from 2019.. Is it possible that calling upon 'firebase' now is outmoded and that is what I am having these troubles? Or should i expect it to work and keep trying to find a solution?

CodePudding user response:

The difference between v8 and v9 of firebase is a well-known error these days.

I am not sure this could be the exact solution, but at least as a hint.

Using compat is a way to solve.

Based in the firebase document below.

import firebase from 'firebase/compat/app';

↑would be how to import.....

Upgrade from version 8 to the modular Web SDK

CodePudding user response:

Not sure how you are using the script files, but have u defined them as "modules" in you html like:

and have you initialized firebase from your app:

const firebaseConfig = { YOU_FIREBASE_CONFIG } const app = initializeApp(firebaseConfig)

CodePudding user response:

When you run this code:

import { initializeApp } from ...

This code imports only the initializeApp function, and nothing else. That's precisely its point, because by using these very granular imports, bundler tools (like webpack) are able to drop any part of the Firebase SDK that you are not using from their output, resulting in a significantly smaller app.

So when you run that import, there is no top-level firebase namespace anymore. To access the Realtime Database, you'd instead use:

import { initializeApp } from 'firebase/app';
import { getDatabase } from "firebase/database";

// Set the configuration for your app
// TODO: Replace with your project's config object
const firebaseConfig = {
  apiKey: "apiKey",
  authDomain: "projectId.firebaseapp.com",
  databaseURL: "https://databaseName.firebaseio.com",
  storageBucket: "bucket.appspot.com"
};

const app = initializeApp(firebaseConfig);

// Get a reference to the database service
const database = getDatabase(app); //            
  • Related