npm

Need private packages and team management tools?Check out npm Orgs. »

firestore-store

2.0.0 • Public • Published

firestore-store Build Status

Firestore session store for Express.js / Connect.

Source of this library is written in ES6 but commonjs exports are used. If you have any problems or questions let me know in issues.

Installation

firebase-admin is a required peer dependency for firestore-store.

npm install firebase-admin firestore-store --save

Usage with Express.js / Connect

Initialize firebase-admin firestore database.

const admin = require( 'firebase-admin' );
 
const firebase = admin.initializeApp( {
  credential:  admin.credential.cert( 'path/to/serviceAccountCredentials.json' ),
  databaseURL: 'https://<DATABASE_URL>.firebaseio.com'
} );
 
const database = firebase.firestore();

Pass express-session to firestore-store

const session        = require( 'express-session' );
const FirestoreStore = require( 'firestore-store' )(session);

Pass database reference to the FirestoreStore.

express() // or connect
  .use( session( {
    store:  new FirestoreStore( {
      database: database
    } ),
 
    secret:            'keyboard cat',
    resave:            true,
    saveUninitialized: true
  } ) );

Options

const store = new FirestoreStore(options)

options.database (required)

Firestore reference.

options.collection (default: 'sessions', optional)

Collection name to use for sessions.

options.parser (default: DocParser, optional)

Parser used to save or read session info from session document. If you need custom functionality or want to add more properties you can implement such a parser yourself. Required is to have read and save methods. Check default parser DocParser

const parser = {
  read(doc) {  
    return JSON.parse(doc.session);
  },
 
  // custom save method which also adds date when modified.
  save(doc) {
    return {
      session: JSON.stringify(doc),
      dateModified: Date.now()
    };
  }
};
 
const store = new FirestoreStore({ parser });

Compatibility

This store implements all the required, recommended and optional methods of the express-session store.

Currently tested with node.js version ~6~, 8, 10, 12. Travis is used for running tests https://travis-ci.org/hendrysadrak/firestore-store

Support

If you have any problems or questions let me know in issues.

If you see it as a useful library star ⭐️ it on Github so I know to put more time into supporting it.

License

MIT License

install

npm i firestore-store

Downloadsweekly downloads

1,403

version

2.0.0

license

MIT

homepage

github.com

repository

Gitgithub

last publish

collaborators

  • avatar
Report a vulnerability