All Projects → davideast → Querybase

davideast / Querybase

Licence: apache-2.0
Bringing the where statement to the Firebase Database.

Programming Languages

typescript
32286 projects

Projects that are alternatives of or similar to Querybase

Salada
Firebase model framework Salada. Salada is the best Firebase framework.
Stars: ✭ 228 (-49.89%)
Mutual labels:  firebase, firebase-database
Nora
Nora is a Firebase abstraction layer for FirebaseDatabase and FirebaseStorage
Stars: ✭ 270 (-40.66%)
Mutual labels:  firebase, firebase-database
Angularmaterialfirebase
🔥 Full stack starter app with Angular 8, Material Design and Firebase (+ demo)
Stars: ✭ 229 (-49.67%)
Mutual labels:  firebase, firebase-database
Firebase Authentication Dotnet
C# library for Firebase Authentication
Stars: ✭ 222 (-51.21%)
Mutual labels:  firebase, firebase-database
Firebase Mock
Firebase mock library for writing unit tests
Stars: ✭ 319 (-29.89%)
Mutual labels:  firebase, firebase-database
Firebase Esp8266
ESP8266 Firebase RTDB Arduino Library
Stars: ✭ 228 (-49.89%)
Mutual labels:  firebase, firebase-database
React Redux Firebase Authentication
🔥Boilerplate Project for Authentication with Firebase in React and Redux
Stars: ✭ 265 (-41.76%)
Mutual labels:  firebase, firebase-database
Expo Native Firebase
🔥 Native Firebase Expo App (iOS, Android) Demo for Firestore, Notifications, Analytics, Storage, Messaging, Database 🚨
Stars: ✭ 197 (-56.7%)
Mutual labels:  firebase, firebase-database
Mechahamster
Mecha Hamster is a game where you roll through customizable environments that you can share with your friends.
Stars: ✭ 314 (-30.99%)
Mutual labels:  firebase, firebase-database
Internalappstore
📦 Manage your own internal Android App Store.
Stars: ✭ 295 (-35.16%)
Mutual labels:  firebase, firebase-database
Fcm Toolbox
📲 Firebase Cloud Messaging toolbox
Stars: ✭ 217 (-52.31%)
Mutual labels:  firebase, firebase-database
Firebase Admin Java
Firebase Admin Java SDK
Stars: ✭ 345 (-24.18%)
Mutual labels:  firebase, firebase-database
Firebase Kotlin Sdk
A Kotlin-first SDK for Firebase
Stars: ✭ 214 (-52.97%)
Mutual labels:  firebase, firebase-database
Laravel Firebase
A Laravel package for the Firebase PHP Admin SDK
Stars: ✭ 369 (-18.9%)
Mutual labels:  firebase, firebase-database
Firebase Esp32
ESP32 Firebase RTDB Arduino Library
Stars: ✭ 204 (-55.16%)
Mutual labels:  firebase, firebase-database
Firebase Ios Sdk
Firebase iOS SDK
Stars: ✭ 3,309 (+627.25%)
Mutual labels:  firebase, firebase-database
React Firebase
🔥Declarative React bindings for Firebase Auth & Realtime Database.
Stars: ✭ 176 (-61.32%)
Mutual labels:  firebase, firebase-database
Vue Trello
Trello clone with Vue.js for educational purposes
Stars: ✭ 185 (-59.34%)
Mutual labels:  firebase, firebase-database
Vuejs Firebase Shopping Cart
Shopping cart demo using Vuejs and Firebase
Stars: ✭ 274 (-39.78%)
Mutual labels:  firebase, firebase-database
Firebase Js Sdk
Firebase Javascript SDK
Stars: ✭ 3,844 (+744.84%)
Mutual labels:  firebase, firebase-database

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 .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);
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].