2017-10-17 3 views
0

Argument de type '{query: {limitTolast: nombre; orderByKey: booléen; } } 'n'est pas assignable au paramètre de type' QueryFn '. Le littéral d'objet ne peut spécifier que des propriétés connues, et' query 'n'existe pas dans le type' QueryFn '.'query' n'existe pas dans le type 'QueryFn' | angularfire2

package.json

"angularfire2": "^5.0.0-rc.3", 
"firebase": "^4.5.1", 

chat.service.ts

getMessages(): FirebaseListObservable<ChatMessage[]> { 
    return this.db.list('messages', { 
     query: { limitTolast : 25, orderByKey: true} 
    }); 
    } 
+0

Salut Kendi, Merci pour l'édition. – Rijo

+0

Je suis également confronté au même problème. Une chance? –

+0

J'ai le même problème – Francesco

Répondre

1

Il ne fonctionne pas, parce que AngularFire prévoit une fonction à passer comme second argument.

Je pense que votre exemple était la bonne façon de procéder pendant la version bêta. (Pas 100% sûr)

Vous avez l'utiliser de la manière suivante:

// make sure to provide a child in the orderByChild call 
getMessages(): Observable<ChatMessage[]> { 
    return this.db.list('/messages', ref => { 
     ref.limitTolast(25).orderByKey(true) 
    }); 
    } 

En savoir plus sur les listes ici interrogation: https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md

+0

Salut Orlandster, FirebaseListObservable est supprimé dans le AngularFire 5.0. Je ne peux donc pas importer FirebaseListObservable. – Rijo

+0

@Rijo merci pour l'indice. Je n'étais pas au courant. J'ai accepté la critique, ça marche comme ça? – Orlandster

1

QueryFn doit retourner un firebase.database.Query, non vide. Vous pouvez coder la requête comme celle-ci, pour plus de clarté:

getMessages(): Observable<ChatMessage[]> { 
    return this.db.list('/messages', ref => { 
     let q = ref.limitTolast(25).orderByKey(true); 
     return q; 
    }); 
    }