A SQL-like interface to Google Cloud Firestore in Java
SDKs for Google Cloud Firestore provides high-level query builder stuff like:
...
Firestore db = FirestoreClient.getFirestore();
Query query = db
.collection("users")
.select("id", "name", "age")
.whereGreaterThanOrEqualTo("age", 30L)
.whereLessThan("age", 40L)
.orderBy("id", Query.Direction.ASCENDING)
.limit(100)
.offset(200);
query.get();
...But SQL will be sometimes wanted, e.g. executing extraction queries periodically, non coders want to execute custom query on their operations, etc. So that, FireSQL supports primitive SQL-like interface, like below:
...
Firestore db = FirestoreClient.getFirestore();
FireSQL firesql = new FireSQL(db);
Query query = firesql.query("SELECT id, name, age FROM users WHERE age >= 30 AND age < 40 ORDER BY id LIMIT 100 OFFSET 200");
query.get();
...- Only
SELECTsupported JOIN,GROUP BY, aggregation functions, sub queries are unsupportedNOT,INand some other expression are unsupportedarray-containsexpression in Firestore query is unsuported for now
- JavaScript implementation https://github.com/jsayol/FireSQL