Firebase begins with query

Search for records using "begins with" logic in Firebase

by Kato Richardson

HTML

<script src="https://cdn.firebase.com/js/client/2.2.2/firebase.js"></script>
<label>
    Search by Author: 
    <input type="text" /> <button>search</button>
</label>
    
<pre></pre>

JavaScript

var fb = new Firebase('https://kato-books.firebaseio.com');
var lastRef;

// search for terms using beginsWith
function find(searchTerm) {
    if( lastRef ) {
         lastRef.off(showResults);   
    }
    var ref = fb;
    if( searchTerm ) {
       searchTerm = searchTerm.toLowerCase();
       ref = ref.orderByChild('auth_lowercase')
        .startAt(searchTerm)
        .endAt(searchTerm+'~');        
    }
    ref.once('value', showResults, console.error);
}

function showResults(snap) {
    $('pre').text( JSON.stringify(snap.val(), null, 2) );
}

// some demo mojo
$('button').click(function() {
   $('pre').text('Loading...');
   var searchTerm = $('input').val();
   find(searchTerm);
});

find();