Using a string as a priority in Firebase

Viewed 1260

I read with interest the blog post here, which describes how to make a query equivalent to sql WHERE email = x

new Firebase("https://examples-sql-queries.firebaseio.com/user")
  .startAt('kato@firebase.com')
  .endAt('kato@firebase.com')
  .once('value', function(snap) {
    console.log('accounts matching email address', snap.val())
  });

I've tried to replicate this as follows:

root
 |-rewards
    |--JAJoFho0MYBMGNGrCdc
       |-name: "apple"
    |--JAJoFj7KsLSXMdGZ77V
       |-name: "orange"
    |--JAJoFp7HP6Ajq-VuMMx
       |-name: "banana"

There are many other fields in each rewards object... but I want to index the object by name and to be able to query all these objects to find the one matching a given name. The blog post instructs us to use setPriority() to achieve this.

I have tried the following:

var ref = new Firebase('https://<example>.firebaseio.com/rewards').push({
  name: 'apple',
  otherKey: 'somevalue',
  ...
});

ref.setPriority('apple');

If I then query firebase, it returns null:

new Firebase('https://<example>.firebaseio.com/rewards')
    .startAt('apple')
    .endAt('apple')
    .once('value', function(snap) {
        console.log('found:', snap.val()); // logs: "found null"
    }); 

What am I doing wrong?

1 Answers
Related