2017-08-02 3 views
0

Ich habe ein Projekt in React, wo ich versuche, meine Datenbank mit Firebase zu strukturieren. Ich möchte eine Referenz für einen untergeordneten Knoten schaffen, aber ich halte immer ‚Typeerror: messagesRef.child ist keine Funktion‘ und die Codefehler aus der Linie 3. Im Folgenden mein Code für die Referenzen ist:TypeError: messagesRef.child ist keine Funktion

/* Create reference to messages in Firebase Database */ 
    var messagesRef = firebase.database().ref('messages').limitToLast(30); 
    var usersRef = messagesRef.child('messsages/users'); 

    usersRef.on('child_added', snapshot => { 
     /* Update React state when message is added at Firebase Database */ 
     let message = { text: snapshot.val(), id: snapshot.key }; 
     var messagesArray = this.state.messages; 
     messagesArray.push(message) 
     this.setState({ messages: messagesArray}); 
     let username = {text:snapshot.val(), id: snapshot.key}; 

    }) 

Mache ich diese Referenzen richtig? Ich habe die Firebase-Dokumentation zu einem T-Stück verfolgt und kann keine Lösung finden.

Antwort

1

Ich glaube, das Problem ist, dass

var messagesRef = firebase.database().ref('messages').limitToLast(30);

vom Typ

firebase.database.Query

und nicht vom Typ

firebase.database.Reference

Die Meth od child kann nur auf Reference Typ Objekte aufgerufen werden, so stattdessen könnte man

var messagesRef = firebase.database().ref('messages/users').limitToLast(30);

Dies wird vorausgesetzt, Ihre Datenbankstruktur ist dies wie verwenden:

{ 
    messages: { 
     users: { 
      someuserid: data, 
      otheruserid: data, 
      ... 
     } 
    } 
}