Ich bin diesem Screencast auf YouTube gefolgt, aber für das Leben von mir kann ich nicht scheinen, meine Datenbank mit meiner React App zu sprechen. Die componentDidMount()
-Funktion wird ausgeführt, aber die .on()
Listener-Funktion scheint nicht zu zünden.Reagieren: Firebase Listener funktioniert nicht
Mein Code sieht wie folgt aus:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import App from './App';
import './index.css';
import * as firebase from 'firebase';
var config = {
// config from firebase db lives here
};
firebase.initializeApp(config);
ReactDOM.render(
<App />,
document.getElementById('root')
);
App.js
import React, { Component } from 'react';
import logo from './logo.svg';
import './App.css';
import * as firebase from 'firebase';
class App extends Component {
constructor() {
super();
this.state = {
speed: 10
}
}
componentDidMount() {
const rootRef = firebase.database().ref().child('react');
const speedRef = rootRef.child('speed');
speedRef.on('value', snap => {
this.setState({
speed: snap.val()
});
});
}
render() {
return (
<div className="App">
<h1>{this.state.speed}</h1>
</div>
);
}
}
export default App;
FWIW, sieht meine db wie folgt aus:
Ich bekomme Null Fehler in der Konsole, und völlig aus Ideen. Alles, was ich falsch mache.
Jede Hilfe wird geschätzt. Danke im Voraus!
Gelöst! Es hatte mit meinen Firebase READ Regeln zu tun. Kann jemand das schließen? – realph
die richtige Sache zu tun ist, eine Antwort auf Ihre Frage zu machen und dann diese Antwort zu akzeptieren. Das war auch mein Problem, und deine Frage/Antwort brachte mich auch zur richtigen Antwort. – awwester
@awwester Antwort hinzugefügt. – realph