Home > OS >  Failing to Retrieve Data from Firebase Real Time Database
Failing to Retrieve Data from Firebase Real Time Database

Time:12-22

I am trying to retrieve data from a firebase real-time database and I am following this tutorial from the firebase documentation: https://firebase.google.com/docs/database/admin/retrieve-data#section-start. For my front-end framework I am using Svelte.

I set up the database in firebase.js.

firebase.js

// Import the functions you need from the SDKs you need
import { initializeApp } from 'firebase/app';
import { getDatabase } from 'firebase/database';
import { getAuth, GoogleAuthProvider } from 'firebase/auth';

const firebaseConfig = {
    apiKey: "AIzaSyCHL9UcT3TtvgQwt7N3DbLjRon9gKPFjA0",
    authDomain: "lyrics-and-quotes.firebaseapp.com",
    databaseURL: "https://lyrics-and-quotes-default-rtdb.firebaseio.com",
    projectId: "lyrics-and-quotes",
    storageBucket: "lyrics-and-quotes.appspot.com",
    messagingSenderId: "492758193692",
    appId: "1:492758193692:web:60ab73db53010e7fa7b1d9",
    measurementId: "G-T33YSTR82R",
};

// Initialize Firebase
initializeApp(firebaseConfig);

// Initialize Realtime Database and get a reference to the service
export const db = getDatabase(app);

// Initialize auth
export const auth = getAuth();

// Initialize Google auth provider
export const googleProvider = new GoogleAuthProvider();

On one of my front-end components, I have:

    import { db } from '../database/firebase';
    const postsRef = db.ref('posts');

However, I get the error: Posts.svelte:5 Uncaught TypeError: db.ref is not a function.

CodePudding user response:

app is not defined in your firebase.js file.

You need to do

const app = initializeApp(firebaseConfig);
export const db = getDatabase(app);

as shown in the doc.

CodePudding user response:

It looks like the db object you are importing from firebase does not have a ref method.

In order to access the ref method, you need to import it from the firebase package like this:

import firebase from 'firebase/app';
import 'firebase/database';

const postsRef = firebase.database().ref('posts');

Make sure that you have also installed the firebase and firebase/database packages in your project.

This will give you access to all the methods and functions in the firebase package, including the database method and the ref method.

I hope this helps!

  • Related