Need help with Querybase?
Click the “chat” button below for chat support from the developer who created it, or find similar developers for support.

About the developer

455 Stars 43 Forks Apache License 2.0 132 Commits 2 Opened issues


Bringing the where statement to the Firebase Database.

Services available


Need anything else?

Contributors list

# 5,624
115 commits
# 103,287
2 commits
# 61,378
1 commit

Bringing the .where() statement to the Firebase Database

Build Status Coverage Status

Querybase is in an experiment and not for production apps/sites/anything.

Cloud Firestore makes this library irrelevant as it has much more complex querying.

What is Querybase?

  • .where() - Find records by up to three fields.
  • No client-side filtering - Querybase genererates composite keys to provide querying on multiple fields.
  • Simple Query API - Use common query methods such as
    , and
  • Lightweight - 1.87 kB (gzipped)


npm install querybase --save

Use via unpkg

Example usage

Querybase takes a Firebase Database reference with a list of fields to create composite keys. You can only use up to three fields. Any more would create a crazy amount of composite keys in the database.

Querying using multiple fields

 const databaseRef = firebase.database().ref().child('people');
 const querybaseRef = querybase.ref(databaseRef, ['name', 'age', 'location']);

// Automatically handles composite keys querybaseRef.push({ name: 'David', age: 27, location: 'SF' });

// Find records by multiple fields // returns a Firebase Database ref const queriedDbRef = querybaseRef .where({ name: 'David', age: 27 });

// Listen for realtime updates queriedDbRef.on('value', snap => console.log(snap));

Querying using one field

Querybase also provides rich querying methods for single fields.

 const databaseRef = firebase.database.ref().child('people');
 const querybaseRef = querybase.ref(databaseRef, []);
 // Querybase for single criteria, returns a Firebase Ref
 querybaseRef.where({ name: 'David'});

// Querybase for a single string criteria, returns // a QuerybaseQuery, which returns a Firebase Ref querybaseRef.where('name').startsWith('Da'); querybaseRef.where('age').lessThan(30); querybaseRef.where('age').greaterThan(20); querybaseRef.where('age').between(20, 30);

We use cookies. If you continue to browse the site, you agree to the use of cookies. For more information on our use of cookies please see our Privacy Policy.