Querybase
Querybase copied to clipboard
Bringing the where statement to the Firebase Database.
Bringing the .where() statement to the Firebase Database
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
.greaterThan(),.lessThan(), and.startsWith(). - Lightweight - 1.87 kB (gzipped)
Install
npm install querybase --save
Use via unpkg
<script src="https://unpkg.com/[email protected]"></script>
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);