Socket
Socket
Sign inDemoInstall

aor-firebase-client2

Package Overview
Dependencies
5
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    aor-firebase-client2

Firebase Client for Admin On Rest


Version published
Weekly downloads
1
Maintainers
1
Created
Weekly downloads
 

Readme

Source

aor-firebase-client

An admin-on-rest client for Firebase.

npm version CircleCI CircleCI

Installation

npm install aor-firebase-client --save

Usage

As a parameter of the <Admin> component

// in src/App.js
import React from 'react';
import { Admin, Resource } from 'admin-on-rest';
import { RestClient } from 'aor-firebase-client';

const firebaseConfig = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>',
    messagingSenderId: '<your-sender-id>'
};

const clientOptions = {
  timestampFieldNames: {
    createdAt: 'createdAt',
    updatedAt: 'updatedAt'
  },
  trackedResources: [{
    name: 'posts', // The name reference to be used in all other places in AOR
    path: 'blog', // The path in the database. If missing will use the name
    public: true,
    uploadFields: [] // The string name of the field
  }, 'contacts'] // A single string assumes path and name as equal, non private and without upload fields
}

const App = () => (
    <Admin restClient={RestClient(trackedResources, clientOptions)} >
        <Resource name="posts" list={PostList} />
        <Resource name="contacts" list={ContactList} />
    </Admin>
);

export default App;

Auth Client

The package lets you manage the login/logout process implementing an optional authClient prop of the Admin component (see documentation).
It stores a firebaseToken in localStorage. The configuration options available are:

  • userProfilePath: The database path to user profiles. Defaults to /users/. Mind the slashes.

  • userAdminProp: The database key to point if a user has admin powers. Defaults to isAdmin

The final path is: {userProfilePath}/{uid}/{userAdminProp}

  • localStorageTokenName: Local storage identifier to hold the firebase client token, defaults to aorFirebaseClientToken

  • handleAuthStateChange: A way to override the auth process

// in src/App.js
...
import {RestClient, AuthClient} from 'aor-firebase-client';

const firebaseConfig = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>',
    messagingSenderId: '<your-sender-id>'
};

const authConfig = {
    userProfilePath: 'profiles',
    userAdminProp: 'superuser'
}

const App = () => (
    <Admin restClient={RestClient(firebaseConfig)} authClient={AuthClient(authConfig)}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

export default App;

Note: AuthClient does require using the RestClient in order to initialize firebase. Alternatively, you can opt to not use the RestClient and initialize firebase yourself like this:

import {RestClient, AuthClient} from 'aor-firebase-client';
import firebase from 'firebase';

const firebaseConfig = {
    apiKey: '<your-api-key>',
    authDomain: '<your-auth-domain>',
    databaseURL: '<your-database-url>',
    storageBucket: '<your-storage-bucket>',
    messagingSenderId: '<your-sender-id>'
};

firebase.initializeApp(firebaseConfig);

const App = () => (
    <Admin authClient={AuthClient()}>
        <Resource name="posts" list={PostList} />
    </Admin>
);

export default App;

Changelog

v0.0.10

  • Documentation fix for authClient #17
  • Handle empty collections #18
  • Build lib on prepare #19
  • Thanks to @grahamlyus who worked a LOT this month to make this release possible! Kudos!

v0.0.9

  • Fixes

v0.0.8

  • Fix it saving on the wrong path #7
  • Fix README links

v0.0.7

  • Typos, tests and fixes #6

v0.0.6

  • README Fixes #4

v0.0.4

  • CI configured

v0.0.3

  • Fixed Auth Client configuration #2
  • Added timestamps #3
  • Initial unit testing / CI

v0.0.1

  • Initial commit, lots of to dos

License

This library is licensed under the MIT Licence.

Keywords

FAQs

Last updated on 07 Sep 2018

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