1.0.4 • Published 5 years ago

react-inject-firebase-data v1.0.4

Weekly downloads
5
License
MIT
Repository
github
Last release
5 years ago

react-inject-firebase-data

React component that injects real-time Firebase data.

Demo screenshot

Install

yarn add react-inject-firebase-data or npm install --save react-inject-firebase-data

Usage

See the demo for full examples.

With a function as children

import * as firebase from 'firebase';
import InjectFirebaseData from 'react-inject-firebase-data';

const App = () => (
  <InjectFirebaseData firebaseRef={firebase.database().ref().child('foo')}>
    {({ data }) => <pre>{data}</pre>}
  </InjectFirebaseData>
);

With the Higher-Order Component

import * as firebase from 'firebase';
import { InjectFirebaseDataHOC } from 'react-inject-firebase-data';

const App = ({ data }) => <pre>{data}</pre>;

export default InjectFirebaseDataHOC(
  firebase.database().ref().child('foo')
)(App);

Props

* = required

PropDescriptionTypeDefault
firebaseRef*The Firebase database reference from which the value should be receivedobject
renderWhileLoadingWhen true, the children function gets called before the data is loadedboolfalse
children*The children functionfunc

Props with the Higher-Order Component

Signature:

InjectFirebaseDataHOC(firebaseRef: firebase.database.Reference, renderWhileLoading: bool) => (WrappedComponent: React.Component) => React.Component

For parameter explanation, see the props table.

Parameters passed to the children function or the WrappedComponent

The children function receives an object as its argument, which contains the following keys:

KeyDescriptionType
dataThe retrieved Firebase dataany
dataKeyThe key of the retrieved datastring
loadingtrue when the Firebase data has not yet been received. Only gets passed when the renderWhileLoading prop is set to truebool

For the Higher-Order Component, this object becomes the wrapped component's props.

Development

Installation

yarn install or npm install

Run demo

yarn start or npm start

Run tests

yarn test or npm test

Building

yarn build or npm run build will build the component for publishing to npm and also bundle the demo app.

yarn clean or npm run clean will delete built resources.

Notice that you'll need to temporarily delete .babelrc to be able to build the component (just put it back after you're done building).