how to get and display data from firebase realtime database?

incognita

I want to get data from the database. Then change them. And then display. Please tell me how to solve this problem and why I can not do it. Here is my code

let firebaseConfig = {...};

firebase.initializeApp(firebaseConfig);

let ref = firebase.database().ref('/data')

class DataTable {
    constructor(parent) {
        this.parent = parent;
    }
    buildTable(data) {
        this.data = data;
        const keys = Object.keys(data[0]);
        console.log(keys)
        let div = document.createElement('div');
        let tab = document.createElement('table');
        let tb = document.createElement('tbody');

        const buildTableBody = () => {
            for (let a of data) {
                let tr = document.createElement('tr');
                keys.forEach((key) => {
                    let td = document.createElement('td');
                    let tn = document.createTextNode(a[key])
                    td.appendChild(tn);
                    tr.appendChild(td);
                });
                tb.appendChild(tr);
            }
            tab.appendChild(tb);
            div.appendChild(tab);
        }
        this.parent.appendChild(div);
        buildTableBody()
    }
}


const table = new DataTable(document.body);
table.buildTable(
    ref.once("value").then((snap) => {
        const data = snap.val()

        data.map(i => {
            let res = {
                '#': Number(i.id),
                'Name': i.name,
            };

            return Object.entries(res).reduce((memo, [key, value]) => {
                if (value) {
                    return {
                        ...memo,
                        [key]: value
                    }
                } else {
                    return memo;
                }
            }, {})
        })
    }))

But it returns to me Promise {}proto: Promise[[PromiseStatus]]: "resolved"[[PromiseValue]]: undefined

Frank van Puffelen

The way you're trying to pass the data into buildTable doesn't work. If you put a breakpoint inside buildTable, you'll be able to see that.

The reason is that the data is loaded from Firebase asynchronously, and any code that needs the data has to be called from inside the once() callback. So you'll want to put the call to buildTable within that callback, like this:

ref.once("value").then((snap) => {
    const data = snap.val()

    let result = data.map(i => {
        let res = {
            '#': Number(i.id),
            'Name': i.name,
        };

        return Object.entries(res).reduce((memo, [key, value]) => {
            if (value) {
                return {
                    ...memo,
                    [key]: value
                }
            } else {
                return memo;
            }
        }, {})
    })
    table.buildTable(result);
}))

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

How to fetch data from firebase realtime database and display it on spinner

Display data from Firebase Realtime Database

How do I get data from firebase realtime database in web?

How to get data from Firebase Realtime Database and show it in a spinner?

How to get the last data from realtime database of firebase in Android

How to get the data from firebase realtime database in react js?

How to get data of firebase realtime database

How to get an object from Firebase Realtime Database?

How to read data from the Firebase realtime database

How to retrieve data from realtime database in Firebase?

How to select data from firebase realtime database

Reading data from firebase realtime database and display as a list using Angular

Display data from firebase Realtime Database in a recyclerview kotlin

Retrieve data from Firebase Realtime Database to display I UIImage

How to display data in RecyclerView with CardView from Android firebase-realtime-database?

How to get imageUrl from firebase storage to store in firebase realtime database?

Dynamically get data from firebase realtime database during runtime in javascript

Get data from google firebase realtime database web

HTML table to display Firebase Realtime Database data

How do I get data from a firebase realtime database and change one text field to represent that specific record?

How to get the last added data on first in the listview from firebase realtime database in android studio

How to get in order data from two different children in Firebase Realtime Database?

How to query firebase realtime database to get last month data

How to display one particular data from Realtime Database?

Android Studio - How to get value from FireBase Realtime Database

how to get string array from firebase realtime database

How to get Firebase Realtime Database reference from Unity Desktop build?

How to get values from different child in firebase realtime database?

How to get elements from a condition node in a Realtime Database Firebase