A redux-saga integration for firebase.
- Try out the example app and browse its code.
- Browse the docs at https://n6g7.github.io/redux-saga-firebase/.
Install with:
yarn add redux-saga-firebase
Initialize a firebase app and instanciate redux-saga-firebase:
import firebase from 'firebase';
import ReduxSagaFirebase from 'redux-saga-firebase';
const myFirebaseApp = firebase.initializeApp({
apiKey: "qosjdqsdkqpdqldkqdkfojqjpfk",
authDomain: "my-app.firebaseapp.com",
databaseURL: "https://my-app.firebaseio.com",
});
const reduxSagaFirebase = new ReduxSagaFirebase(myFirebaseApp)
You can now use reduxSagaFirebase
methods in your sagas:
const authProvider = new firebase.auth.GoogleAuthProvider();
function* loginSaga() {
try {
const data = yield call(reduxSagaFirebase.signInWithPopup, authProvider);
yield put(loginSuccess(data));
}
catch(error) {
yield put(loginFailure(error));
}
}
export default function* rootSaga() {
yield [
takeEvery(types.LOGIN.REQUEST, loginSaga);
];
}
Make sure your client provides a implementation of fetch
, either natively or via a polyfill (whatwg-fetch
is a pretty good one).
Authentication
*auth.signInAnonymously()
*auth.signInWithEmailAndPassword(email, password)
*auth.signInWithPopup(authProvider)
*auth.signOut()
auth.channel()
Database
*database.read(path)
*database.create(path, data)
*database.update(path, data)
*database.patch(path, data)
*database.delete(path)
database.channel(path, event)
Functions
Messaging
Storage