No puedo obtener datos de firebase. Firebase.js se está usando para la inicialización de firebase y en App.js estoy tratando de obtenerlo y trabajar con él. Ahora, cuando intento obtener datos y mostrarlos en el navegador, solo veo una página en blanco. Parece que no obtuve ningún dato. Por algunas razones, ni siquiera puedo console.log de stocksRef.on ('value', (dataSnapshot) y no puedo verificar qué datos obtuve y si los obtuve. Por favor, ayúdame a solucionarlo.

App.js

class StocksList extends Component {
    constructor(props){
        super(props);
        this.state = {
            stocks: []
        }
    }

    componentDidMount() {
        const stocksRef = firebase.database().ref('list');
        console.log('popopok', stocksRef)
        stocksRef.on('value', (dataSnapshot) => {
            let list = dataSnapshot.val();
            this.setState({
                stocks: Object.values(list)
            })
        })
    }

    render() {
        return (
            <div>
                {this.state.stocks.map((item) => {
                    return (
                        <div>
                            <p>ISIN: {item.isin}</p>
                            <p>issuer: {item.issuer}</p>
                            <p>issuerCode: {item.issuerCode}</p>
                            <p>ISIN: {item.isin}</p>
                            <p>nominal: {item.nominal} {item.currency}</p>
                            <p>form: {item.form}</p>
                            <p>vyd: {item.vyd}</p>
                        </div>
                    )
                })}
            </div>

        )
    }
}

export default StocksList;

Firebase.js

import firebase from 'firebase'

let config = {
    apiKey: ******,
    authDomain: ******,
    databaseURL: ******,
    projectId: ******,
    storageBucket: ******,
    messagingSenderId: ******,
    appId: ******
};

firebase.initializeApp(config);

export default firebase;
2
Stas Motorny 16 ago. 2020 a las 19:15

2 respuestas

La mejor respuesta

Debe establecer reglas de permisos de acceso en firebase console.

Hasta donde yo sé, es necesario establecer algunas reglas para los datos de acceso en la base de datos en tiempo real de firebase.
Y si quieres saber sobre la regla de permiso de base de fuego, lee mi referencia

Puedes comprobarlo con el siguiente error del código.

try{
 stocksRef.on('value', (dataSnapshot) => {
            let list = dataSnapshot.val();
            this.setState({
                stocks: Object.values(list)
            })
        })
} catch(error) {
             console.log(error);
}

Referencia

  1. Reglas de la base de datos: documentos de Firebase
1
Stark Jeon 16 ago. 2020 a las 16:26

Inténtalo así

async componentDidMount() {
        const stocksRef = await firebase.database().ref('list');
        console.log('popopok', stocksRef)
        stocksRef.on('value', (dataSnapshot) => {
            let list = dataSnapshot.val();
            this.setState({
                stocks: Object.values(list)
            })
        })
    }
0
Sathishkumar Rakkiasamy 16 ago. 2020 a las 16:22