Socket
Socket
Sign inDemoInstall

database-js-firebase

Package Overview
Dependencies
3
Maintainers
1
Versions
9
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    database-js-firebase

Database-js interface for Firebase


Version published
Maintainers
1
Created

Readme

Source

database-js-firebase

Build Status

Database-js interface for Firebase

About

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 CREATE, SELECT, UPDATE, INSERT and DELETE. WHERE, GROUP BY, and LIMIT are all functional. INNER JOIN, LEFT JOIN and RIGHT JOIN work, OUTER JOIN is not supported. Aggregate functions COUNT and SUM are supported.

CREATEs do not create a table structure because Firebase does not need a table to exist in order to insert data.

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.

RunKit Demo

Install

npm install database-js-firebase

Usage

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();
    }
})();

License

MIT (c) mlaanderson

Keywords

FAQs

Last updated on 19 Aug 2019

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc