@heathh/redux-saga-firebase

0.7.1 • Public • Published

redux-saga-firebase

CircleCI npm version Coverage Status bitHound Overall Score Known Vulnerabilities

A redux-saga integration for firebase.

Quick start

Install with:

yarn add redux-saga-firebase

Initialize a firebase app and instanciate redux-saga-firebase:

import firebase from 'firebase';
import '@firebase/firestore'; // 👈 If you're using firestore
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)
// Or, to use firestore:
const reduxSagaFirebase = new ReduxSagaFirebase(myFirebaseApp, firebase.firestore())

You can now use reduxSagaFirebase methods in your sagas:

const authProvider = new firebase.auth.GoogleAuthProvider();

function* loginSaga() {
  try {
    const data = yield call(reduxSagaFirebase.auth.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).

API

Index

Authentication

Database

Firestore

Functions

Messaging

Storage

Readme

Keywords

none

Package Sidebar

Install

npm i @heathh/redux-saga-firebase

Weekly Downloads

1

Version

0.7.1

License

MIT

Last publish

Collaborators

  • heathh