Ad

I Keep Getting The Error: Error: Too Many Arguments Provided To Query.startAt(). When Using AngularFire2

- 1 answer

I have a simple function that accepts parameters and returns the dataset

search(searchValues , numOfItems, startKey?) {
    return this.db.collection('gppContract', ref => ref
    .where('financialYear', '==', searchValues.financialYear)
    .startAt(startKey)
    .orderBy('amount', 'desc')
    .limit(numOfItems + 1))
      .valueChanges();


  }

What am i doing wrong or missing? am at a loss here.

Ad

Answer

First, orderBy() needs to be before startAt(), to know according to which node the result should be.

Second, orderBy() only takes one argument and it should be the same field as where(), from the docs:

Range filter and orderBy should be on the same fields:

citiesRef.where("population", ">", 100000).orderBy("population")

Check this:

https://github.com/angular/angularfire2/blob/master/docs/firestore/querying-collections.md

Ad
source: stackoverflow.com
Ad