Argument of type \'{ query: { limitTolast: number; orderByKey: boolean; }; }\' is not assignable to parameter of type \'QueryFn\'.Object literal may only specify known propertie
You can try this code:
return this.db.list('/categories', ref => ref.orderByChild('name')).valueChanges();
QueryFn must return a firebase.database.Query, not void. You can code the query like this one, for more clear:
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
let q = ref.limitTolast(25).orderByKey(true);
return q;
});
}
due to update on Angular Fire, replace FirebaseListObservable to AngularFireList and make sure you return firebase.database.Query like this
getMessages(): AngularFireList<ChatMessage[]> {
return this.db.list('messages', ref => {
return ref.limitToLast(25).orderByKey();
});
}
It's not working, because AngularFire expects a function to be passed as a second argument.
I think your example was the right way to go during the beta version. (not 100% sure)
You have use it the following way:
// make sure to provide a child in the orderByChild call
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref => {
return ref.limitTolast(25).orderByKey(true)
});
}
Learn more about querying lists here: https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md
This will work perfectly. Tried by me
getMessages(): Observable<ChatMessage[]> {
return this.db.list('/messages', ref =>
let q = ref.limitTolast(25).orderByKey(true);
return q;
);
}
for more information related to queries goto this link: https://github.com/angular/angularfire2/blob/master/docs/rtdb/querying-lists.md