Database-js interface for Firebase
Database-js-firebase is a database-js wrapper around the Firebase database library. It creates a Promises wrapper around an SQL to Firebase (NoSQL) interpreter.
It significantly restricts the structure Firebase as well as the access to Firebase. Right now access is limited to email and password.
Data must be stored using Firebase's ref.push. SQL commands are limited to SELECT, UPDATE, INSERT and DELETE. WHERE works well. JOINs are not allowed. GROUP BY is not supported. LIMIT and OFFSET are combined into a single LIMIT syntax: LIMIT [offset,]number
While a SELECT command can return a JSON object for a given field, JSON values cannot be UPDATEd or INSERTed, or be part of a WHERE clause.
You probably should not use this, it was built as an experiment.
npm install database-js-firebase
If your Firebase data is structured as:
"$uid": {
"users": {
"firebase-autogenerated-key": {
"username": "dduck",
"fullname": "Donald Duck",
...
},
"firebase-autogenerated-key": {
"username": "mmouse",
"fullname": "Mickey Mouse",
...
},
...
}
}
Then your access will be like:
var Database = require('database-js2');
(async () => {
let connection, statement, rows;
connection = new Database('database-js-firebase://[my_email]:[my_password]@[project_id]/[root_node_path]?apiKey=[API KEY]');
try {
statement = await connection.prepareStatement("SELECT * FROM users WHERE username = ?");
rows = await statement.query('dduck');
console.log(rows);
} catch (error) {
console.log(error);
} finally {
await connection.close();
}
})();
MIT (c) mlaanderson