2016-08-16 2 views
0

Versuchen, eine Tabelle von Daten aus Firebase 3.x.x zu erhalten, um mit meiner React App zu synchronisieren. Soweit ich weiß, ist dies die beliebteste Bibliothek für die Synchronisierung der beiden Staaten. Klammern werden mit entsprechenden Daten ausgefüllt.Rebase/Redux/Firebase + React Daten nicht Rohrleitungen in

App.js:

componentDidMount() { 

var base = Rebase.createClass({ 
    apiKey: "[API Key]", 
    authDomain: "[app-name].firebaseapp.com", 
    databaseURL: "https://[my-app].firebaseio.com", 
    storageBucket: "[app-name].appspot.com", 
}) 
base.syncState(`records`, { 
     context: this, 
     state: 'records', 
     asArray: true 
    }) 
} 

, wenn ich rufe

console.log(this.props.state.records) 

ich ein leeres Array zu erhalten (der eine, die in state.js initialisiert wurde) Meine Daten in Feuerbasis sieht wie folgt aus:

https://[app-name].firebaseio.com/:

[app-name]{ 
    records[ 
    record_1{ 
    id: 0 
    description: "this is a record" 
    } 
    record_2{ 
    id: 1 
    description: "this is another record" 
    } 
    ] 
} 

Edit: Ich glaube nicht, dass es mit der Authentifizierung zu tun hat. Das Setzen von read und write auf true in database.rules.sjon hat zu keinen Ergebnissen geführt.

Bearbeiten: Firebase zeigt Bandbreitennutzung.

+0

Sind Sie sicher, dass es nicht 'console.log (this.state.records)' stattdessen sein sollte? –

Antwort

0

Lösung:

So wurden die Daten tatsächlich dort immer mit zu beginnen. Ich habe es ursprünglich innerhalb der render() -Methode abgefragt. Als ich eine Schaltfläche erstellt habe, die eine Klassenmethode ausgelöst hat, die this.state.records abgefragt hat, wurden die Daten angezeigt.

Das bedeutet also Zustand wird nicht initialisiert, bis der JSX-Return-Block in der Render-Methode. Scheint etwas merkwürdig, aber hey, jetzt weiß ich es.

Verwandte Themen