{"id":16512977,"url":"https://github.com/n6g7/redux-saga-firebase","last_synced_at":"2025-04-04T05:09:09.945Z","repository":{"id":38272789,"uuid":"84738428","full_name":"n6g7/redux-saga-firebase","owner":"n6g7","description":"A redux saga integration for firebase.","archived":false,"fork":false,"pushed_at":"2023-03-06T17:59:19.000Z","size":15775,"stargazers_count":284,"open_issues_count":169,"forks_count":57,"subscribers_count":5,"default_branch":"master","last_synced_at":"2024-10-18T19:07:56.729Z","etag":null,"topics":["firebase","redux","redux-saga","saga"],"latest_commit_sha":null,"homepage":"https://redux-saga-firebase.js.org/","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/n6g7.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2017-03-12T16:02:30.000Z","updated_at":"2024-08-20T16:39:22.000Z","dependencies_parsed_at":"2024-06-19T01:32:55.601Z","dependency_job_id":"8753892f-e2c6-4d35-aa35-2e99bfdb4764","html_url":"https://github.com/n6g7/redux-saga-firebase","commit_stats":{"total_commits":733,"total_committers":19,"mean_commits":"38.578947368421055","dds":0.6480218281036835,"last_synced_commit":"b62662b84b875258d08acab612438a01c251289a"},"previous_names":[],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n6g7%2Fredux-saga-firebase","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n6g7%2Fredux-saga-firebase/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n6g7%2Fredux-saga-firebase/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/n6g7%2Fredux-saga-firebase/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/n6g7","download_url":"https://codeload.github.com/n6g7/redux-saga-firebase/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247123107,"owners_count":20887261,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["firebase","redux","redux-saga","saga"],"created_at":"2024-10-11T16:06:48.850Z","updated_at":"2025-04-04T05:09:09.928Z","avatar_url":"https://github.com/n6g7.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# ⚠️ This project isn't maintained\n\nI unfortunately don't have time to maintain this project anymore.\nI'd be happy to share commit access with anyone interested in taking over the project, get in touch if you'd like to revive rsf!\n\n--------\n\n# redux-saga-firebase\n\n[![CircleCI](https://circleci.com/gh/n6g7/redux-saga-firebase.svg?style=svg)](https://circleci.com/gh/n6g7/redux-saga-firebase)\n[![npm version](https://badge.fury.io/js/redux-saga-firebase.svg)](https://badge.fury.io/js/redux-saga-firebase)\n[![Coverage Status](https://coveralls.io/repos/github/n6g7/redux-saga-firebase/badge.svg?branch=master)](https://coveralls.io/github/n6g7/redux-saga-firebase?branch=master)\n\nA [redux-saga](https://github.com/redux-saga/redux-saga/) integration for [firebase](https://firebase.google.com/).\n\n- Try out the [example app](https://redux-saga-firebase.firebaseapp.com/) and browse its [code](https://github.com/n6g7/redux-saga-firebase/blob/master/example/).\n- It also works with React Native 📱! Here's a very simple example: https://github.com/n6g7/cat/tree/master/rn.\n- Browse the docs at [https://redux-saga-firebase.js.org/](https://redux-saga-firebase.js.org/).\n\n## Quick start\n\nInstall with:\n\n```js\nyarn add redux-saga-firebase\n```\n\nInitialize a firebase app and instantiate redux-saga-firebase:\n\n```js\nimport firebase from 'firebase'\nimport '@firebase/firestore' // 👈 If you're using firestore\nimport ReduxSagaFirebase from 'redux-saga-firebase'\n\nconst myFirebaseApp = firebase.initializeApp({\n  apiKey: 'qosjdqsdkqpdqldkqdkfojqjpfk',\n  authDomain: 'my-app.firebaseapp.com',\n  databaseURL: 'https://my-app.firebaseio.com',\n})\n\nconst reduxSagaFirebase = new ReduxSagaFirebase(myFirebaseApp)\n```\n\nYou can now use `reduxSagaFirebase` methods in your sagas:\n\n```js\nfunction* syncSaga() {\n  yield fork(reduxSagaFirebase.database.sync, 'todos', {\n    successActionCreator: syncTodos,\n  })\n}\n```\n\nMake sure your client provides a implementation of [`fetch`](https://developer.mozilla.org/en/docs/Web/API/Fetch_API), either natively or via a polyfill ([`whatwg-fetch`](https://www.npmjs.com/package/whatwg-fetch) is a pretty good one).\n\n## API\n\n### Authentication\n\n- [`*auth.applyActionCode(code)`](https://redux-saga-firebase.js.org/reference/dev/auth#applyActionCode)\n- [`auth.channel()`](https://redux-saga-firebase.js.org/reference/dev/auth#channel)\n- [`*auth.confirmPasswordReset(code, newPassword)`](https://redux-saga-firebase.js.org/reference/dev/auth#confirmPasswordReset)\n- [`*auth.createUserWithEmailAndPassword(email, password)`](https://redux-saga-firebase.js.org/reference/dev/auth#createUserWithEmailAndPassword)\n- [`*auth.deleteProfile()`](https://redux-saga-firebase.js.org/reference/dev/auth#deleteProfile)\n- [`*auth.linkWithPopup(authProvider)`](https://redux-saga-firebase.js.org/reference/dev/auth#linkWithPopup)\n- [`*auth.linkWithRedirect(authProvider)`](https://redux-saga-firebase.js.org/reference/dev/auth#linkWithRedirect)\n- [`*auth.sendEmailVerification(actionCodeSettings)`](https://redux-saga-firebase.js.org/reference/dev/auth#sendEmailVerification)\n- [`*auth.sendPasswordResetEmail(email, actionCodeSettings)`](https://redux-saga-firebase.js.org/reference/dev/auth#sendPasswordResetEmail)\n- [`*auth.signInAndRetrieveDataWithCredential(credential)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInAndRetrieveDataWithCredential)\n- [`*auth.signInAnonymously()`](https://redux-saga-firebase.js.org/reference/dev/auth#signInAnonymously)\n- [`*auth.signInWithCredential(credential)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithCredential)\n- [`*auth.signInWithCustomToken(token)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithCustomToken)\n- [`*auth.signInWithEmailAndPassword(email, password)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithEmailAndPassword)\n- [`*auth.signInWithPhoneNumber(phoneNumber, applicationVerifier)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithPhoneNumber)\n- [`*auth.signInWithPopup(authProvider)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithPopup)\n- [`*auth.signInWithRedirect(authProvider)`](https://redux-saga-firebase.js.org/reference/dev/auth#signInWithRedirect)\n- [`*auth.signOut()`](https://redux-saga-firebase.js.org/reference/dev/auth#signOut)\n- [`*auth.unlink(authProvider)`](https://redux-saga-firebase.js.org/reference/dev/auth#unlink)\n- [`*auth.updateEmail(email)`](https://redux-saga-firebase.js.org/reference/dev/auth#updateEmail)\n- [`*auth.updatePassword(password)`](https://redux-saga-firebase.js.org/reference/dev/auth#updatePassword)\n- [`*auth.updateProfile(profile)`](https://redux-saga-firebase.js.org/reference/dev/auth#updateProfile)\n\n### Database\n\n- [`*database.read(path)`](https://redux-saga-firebase.js.org/reference/dev/database#read)\n- [`*database.create(path, data)`](https://redux-saga-firebase.js.org/reference/dev/database#create)\n- [`*database.update(path, data)`](https://redux-saga-firebase.js.org/reference/dev/database#update)\n- [`*database.patch(path, data)`](https://redux-saga-firebase.js.org/reference/dev/database#patch)\n- [`*database.delete(path)`](https://redux-saga-firebase.js.org/reference/dev/database#delete)\n- [`database.channel(path, event, buffer)`](https://redux-saga-firebase.js.org/reference/dev/database#channel)\n- [`*database.sync(path, options, event)`](https://redux-saga-firebase.js.org/reference/dev/database#sync)\n\n### Firestore\n\n- [`*firestore.addDocument(collectionRef, data)`](https://redux-saga-firebase.js.org/reference/dev/firestore#addDocument)\n- [`firestore.channel(pathOrRef, type, buffer)`](https://redux-saga-firebase.js.org/reference/dev/firestore#channel)\n- [`*firestore.deleteDocument(documentRef)`](https://redux-saga-firebase.js.org/reference/dev/firestore#deleteDocument)\n- [`*firestore.getCollection(collectionRef)`](https://redux-saga-firebase.js.org/reference/dev/firestore#getCollection)\n- [`*firestore.getDocument(docRef)`](https://redux-saga-firebase.js.org/reference/dev/firestore#getDocument)\n- [`*firestore.setDocument(docRef, data, options)`](https://redux-saga-firebase.js.org/reference/dev/firestore#setDocument)\n- [`*firestore.syncCollection(pathOrRef, options)`](https://redux-saga-firebase.js.org/reference/dev/firestore#syncCollection)\n- [`*firestore.syncDocument(pathOrRef, options)`](https://redux-saga-firebase.js.org/reference/dev/firestore#syncDocument)\n- [`*firestore.updateDocument(docRef, ...args)`](https://redux-saga-firebase.js.org/reference/dev/firestore#updateDocument)\n\n### Functions\n\n- [`*functions.call(functionName, queryParams={}, init={})`](https://redux-saga-firebase.js.org/reference/dev/functions#call)\n\n### Messaging\n\n- [`messaging.channel()`](https://redux-saga-firebase.js.org/reference/dev/messaging#channel)\n- [`*messaging.syncMessages(options)`](https://redux-saga-firebase.js.org/reference/dev/messaging#syncMessages)\n- [`*messaging.syncToken(options)`](https://redux-saga-firebase.js.org/reference/dev/messaging#syncToken)\n- [`messaging.tokenRefreshChannel()`](https://redux-saga-firebase.js.org/reference/dev/messaging#tokenRefreshChannel)\n\n### Storage\n\n- [`storage.uploadFile(path, file, metadata)`](https://redux-saga-firebase.js.org/reference/dev/storage#uploadFile)\n- [`storage.uploadString(path, string, format, metadata)`](https://redux-saga-firebase.js.org/reference/dev/storage#uploadString)\n- [`*storage.getDownloadURL(path)`](https://redux-saga-firebase.js.org/reference/dev/storage#getDownloadURL)\n- [`*storage.getFileMetadata(path)`](https://redux-saga-firebase.js.org/reference/dev/storage#getFileMetadata)\n- [`*storage.updateFileMetadata(path, newMetadata)`](https://redux-saga-firebase.js.org/reference/dev/storage#updateFileMetadata)\n- [`*storage.deleteFile(path)`](https://redux-saga-firebase.js.org/reference/dev/storage#deleteFile)\n\n## Contributing\n\n- Clone\n- Link lib to example site:\n  - `yarn link` in root directory\n  - `yarn link redux-saga-firebase` in `example` directory\n- Run tests: `yarn test`\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn6g7%2Fredux-saga-firebase","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fn6g7%2Fredux-saga-firebase","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fn6g7%2Fredux-saga-firebase/lists"}