react-inject-firebase-data
React component that injects real-time Firebase data.
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
;; const App = <InjectFirebaseData firebaseRef=firebase> <pre>data</pre> </InjectFirebaseData>;
With the Higher-Order Component
;; const App = <pre>data</pre>; firebaseApp;
Props
*
= required
Prop | Description | Type | Default |
---|---|---|---|
firebaseRef* |
The Firebase database reference from which the value should be received | object |
|
renderWhileLoading |
When true , the children function gets called before the data is loaded |
bool |
false |
children* |
The children function | func |
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.
children
function or the WrappedComponent
Parameters passed to the The children
function receives an object as its argument, which contains the following keys:
Key | Description | Type |
---|---|---|
data |
The retrieved Firebase data | any |
dataKey |
The key of the retrieved data | string |
loading |
true when the Firebase data has not yet been received. Only gets passed when the renderWhileLoading prop is set to true |
bool |
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).