Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/davideast/Querybase
Bringing the where statement to the Firebase Database.
https://github.com/davideast/Querybase
firebase firebase-database
Last synced: about 2 months ago
JSON representation
Bringing the where statement to the Firebase Database.
- Host: GitHub
- URL: https://github.com/davideast/Querybase
- Owner: davideast
- License: apache-2.0
- Archived: true
- Created: 2015-12-24T06:25:50.000Z (about 9 years ago)
- Default Branch: master
- Last Pushed: 2019-01-29T01:44:31.000Z (almost 6 years ago)
- Last Synced: 2024-08-03T18:12:52.718Z (5 months ago)
- Topics: firebase, firebase-database
- Language: TypeScript
- Homepage:
- Size: 369 KB
- Stars: 455
- Watchers: 37
- Forks: 40
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
Awesome Lists containing this project
- awesome-firebase - Querybase - An open source library to add "where" statements to the JS SDK. (Helpers)
README
Bringing the
.where()
statement to the Firebase Database[![Build Status](https://travis-ci.org/davideast/Querybase.svg?branch=master)](https://travis-ci.org/davideast/Querybase)
[![Coverage Status](https://coveralls.io/repos/github/davideast/Querybase/badge.svg?branch=master)](https://coveralls.io/github/davideast/Querybase?branch=master)#### Querybase is in an experiment and not for production apps/sites/anything.
## [Cloud Firestore](https://firebase.google.com/docs/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
```bash
npm install querybase --save
```Use via [unpkg](https://unpkg.com)
```html
```
## 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
```js
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 fieldQuerybase also provides rich querying methods for single fields.
```js
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);
```