Firebase - How do I write multiple orderByChild for extracting data?

后端 未结 3 1442
情话喂你
情话喂你 2020-12-10 04:17

I\'m looking to get data where two fields equal what I\'m passing in.

Here\'s an example of my code:

this.refApp
  .orderByChild(\'u         


        
3条回答
  •  时光取名叫无心
    2020-12-10 04:44

    An other way to do kind of multiple orderByChild in Firebase is to create an orderKey.

    Imagine you have this in your base:

    {
        userId: {
            firstName: 'Snow',
            lastName: 'Jon',
            birthYear: 283
        }
    }
    

    And you want to query: userRef.orderByChild('firstName').equalTo('Jon').orderByChild('lastName').equalTo('Snow')

    You need to create a key on your user like this:

    {
        userId: {
            firstName: 'Snow',
            lastName: 'Jon',
            birthYear: 283,
            orderName: 'JonSnow'
        }
    }
    

    So you can query like this: userRef.orderByChild('orderName').equalTo('JonSnow')

    This also works with startAt and endAt if you want to query all the Snow born in a range of years. You first create the key:

    {
        userId: {
            firstName: 'Snow',
            lastName: 'Jon',
            birthYear: 283,
            orderNameYear: 'Snow283'
        }
    }
    

    So you can query: userRef.orderByChild('orderNameYear').startAt('Snow280').endAt('Snow285')

    This will return all Snow born between 280 and 285.

提交回复
热议问题