1.0.6 • Published 6 years ago

ra-data-firebase v1.0.6

Weekly downloads
3
License
MIT
Repository
github
Last release
6 years ago

ra-data-firebase

package version package downloads standard-readme compliant package license make a pull request

Firebase data provider for React Admin

Table of Contents

About

A Firebase data provider for react-admin. Based on aor-firebase-client, modified and maintained to own preferences.

Install

This project uses node and npm. Ensure that firebase and react-admin is installed.

$ npm install ra-data-firebase
$ # OR
$ yarn add ra-data-firebase

Usage

import React, { Component } from 'react'
import { Admin, Resource } from 'react-admin'
import firebase from 'firebase'

import Login from './login'
import Dashboard from './dashboard'

import Store from '@material-ui/icons/Store'
import { AssetsCreate, AssetsEdit, AssetsList } from './assets'

import { FirebaseDataProvider } from 'ra-data-firebase'

const firebaseConfig =
    {
      // Firebase config used to create additional app to create users (HACK)
      apiKey: '########################################',
      authDomain: '########################################',
      databaseURL: '########################################',
      projectId: '########################################',
      storageBucket: '########################################'
    }

const providerConfig = {
  admin: {
    path: 'people', // path in db to store user information (default 'users')
    config: firebaseConfig,
    validate: (data) => data.isEmployee // Function to validate that a user should be created in firebase (default () => true)
  },
  metaFieldNames: {
    createdAt: 'createdAt',
    updatedAt: 'updatedAt',
    createdBy: 'createdBy'
  },
  trackedResources: [
    {
      name: 'sites',
      path: `sites`,
      isPublic: false
    },
    {
      name: 'assets',
      path: `assets`,
      isPublic: false,
      uploadFields: ['pictures', 'files']
    },
    {
      name: 'parts',
      path: 'parts',
      isPublic: false,
      uploadFields: ['pictures', 'files']
    },
    {
      name: 'maintenance',
      path: `maintenance`,
      isPublic: false,
      uploadFields: ['pictures', 'files']
    }
  ]
}

// Firebase must be initialized first
firebase.initializeApp(firebaseConfig)

class App extends Component {
  render () {
    return <Admin
      title='Demo'
      loginPage={Login}
      dashboard={Dashboard}
      dataProvider={FirebaseDataProvider(providerConfig)}
    >
      <Resource
        icon={Store}
        options={{ label: 'Assets' }}
        name='assets'
        list={AssetsList}
        edit={AssetsEdit}
        create={AssetsCreate}
      />
    </Admin>
  }
}

export default App

See

Contribute

  1. Fork it and create your feature branch: git checkout -b my-new-feature
  2. Commit your changes: git commit -am 'Add some feature'
  3. Push to the branch: git push origin my-new-feature
  4. Submit a pull request

License

MIT

1.0.6

6 years ago

1.0.5

6 years ago

1.0.4

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago