Search code examples
typescriptfirebaseangular-cliangularfire2

'query' does not exist in type 'QueryFn' | angularfire2


Argument of type '{ query: { limitTolast: number; orderByKey: boolean; }; }' is not assignable to parameter of type 'QueryFn'.Object literal may only specify known properties, and 'query' does not exist in type 'QueryFn'.

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}
    });
  }

Solution

  • 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