redux-observable

If you are using redux-observable, make sure to set up your redux-observable middleware so that firebase is available within your epics. Here is an example combineEpics function:

Setup

Examples below assume that you have setup redux-observable middleware so that firebase is available within your epics.

import firebase from 'firebase/app' import 'firebase/database' import { combineEpics } from 'redux-observable' const rootEpic = (...args) => combineEpics(somethingEpic, epic2)(...args) // then later in your epics const somethingEpic = (action$, store) => action$.ofType(SOMETHING) .map(() => firebase.database().ref('somePath/onFirebase').push({ some: 'data' }) ) 

Write User Input To Firebase

redux-observable can easily be used with redux-form to write changes to Firebase as a user types into an input, see the redux-form recipes section for more details/

In the Angular world this has been called "3-Way Data Binding".

Debounced Notifications

Debounce is writing to a ref on Firebase such as /notifications (useful so that tons of similar notifications aren't created).

const SEND_NOTIFICATION = 'SEND_NOTIFICATION'; export const notificationEpic = (action$, { getState, dispatch }) => action$.ofType(SEND_NOTIFICATION) // stream of notification actions .debounceTime(2000) // debounce SEND_NOTIFICATION actions by 2 seconds .do((action) => { // push the notification object to the notifications ref return firebase.database().ref('notifications').push(action.payload) }) .mapTo({ type: 'EMAIL_NOTIFICATION_CREATED' }); 

results matching ""

    No results matching ""