Skip to content

Conversation

@martynovs
Copy link
Contributor

Description

It allow to use more than one firebase app by using separate store for each one and connect components to different stores.

Questions

  • Will a new version need to be released or is this a docs change? YES
  • Which version should this be published as a part of? ASAP
  • Does this impact the external API? YES
  • Will it need to be a breaking change? NO

Check List

  • [-] All tests passing
  • [-] Docs updated with any changes or examples
  • [-] Added tests to ensure feature(s) work properly

Relevant Issues

It helps to use more than one firebase app by creating separate store for each one,
it may be enough to fix #29
@codecov
Copy link

codecov bot commented May 31, 2017

Codecov Report

Merging #148 into master will decrease coverage by 0.02%.
The diff coverage is 100%.

@@            Coverage Diff            @@
##           master    #148      +/-   ##
=========================================
- Coverage   85.93%   85.9%   -0.03%     
=========================================
  Files          17      17              
  Lines        1479    1483       +4     
  Branches      243     245       +2     
=========================================
+ Hits         1271    1274       +3     
- Misses        208     209       +1

@prescottprue
Copy link
Owner

prescottprue commented May 31, 2017

Interesting way to solve this! Is there a reason that having two different stores is preferred to running two firebase reducers within one store?

@martynovs
Copy link
Contributor Author

My app works for many customers, each customer have separate database. Admins can switch between customers.
I want to use default store for application wide components, and separate store for customer related components. When admin switch customer I can drop store and create new one for next customer db.

@prescottprue prescottprue changed the base branch from master to v1.5.0 May 31, 2017 21:35
@prescottprue prescottprue merged commit cfc3aba into prescottprue:v1.5.0 Jun 3, 2017
prescottprue added a commit that referenced this pull request Jun 27, 2017
* Firebase is now an external in webpack config (shrinks browser bundles)
* `createFirebaseInstance` is exposed at top level (for passing the name of the store for which to create the `firebaseConnect` function)
* Removed unnecessary file (old connect file)

### Relevant Issues
- #148
@prescottprue prescottprue mentioned this pull request Sep 7, 2017
prescottprue added a commit that referenced this pull request Sep 18, 2017
🍾 🥂 The long awaited v1.5.0 release 🥂 🍾 

### Breaking Changes
* `browser` field has been removed from `package.json` which means commonJS build is used instead of `UMD` build from Webpack (much smaller)
* [firebaseConnect] Uses `prop-types` instead of importing from React - #122 

### Core
* [firebaseConnect] Allow usage of different stores in `firebaseConnect` - #148, #29
* [firebaseConnect] statics are now hoisted thanks to `hoist-non-react-statics`
* [firebaseConnect] exposed `createFirebaseConnect` for creating `firebaseConnect` HOCs connected to different stores
* [auth] `login` method supports `credential` parameter (with matching docs and tests updates)
* [auth] deprecation warning added for `token` and `provider` combo in `login` method
* [auth] Adds `updateProfile`, `updateAuth`, and `updateEmail` methods that dispatch associated start/success/failure actions
* [helpers] `deleteFile` method response no longer includes `dbPath` if it is undefined (test added to check this case)
* [helpers] No more race condition with `uniqueSet` - #207
* [typescript] Typescript typings - #142, #214 
* [query] `watchEvent` accepts options object as third argument
* [populate] Lodash path syntax support - #132
* [populate] accept a function for populate for item based populate config - #132
* [populate] Profile population (`profileParamsToPopulate`) supports single item and list population - #203
* [storage] `uploadFile` and `uploadFiles` no longer track progress by default (`storageRef.put` called directly)
* [config] Usage of `profileFactory` is wrapped in try/catch to handle and reject errors within provided factory function
* [config] `distpatchOnUnsetListener` spelling fixed to be `dispatchOnUnsetListener` (depreciation warning added along with a test confirm it is displayed)
* [config] `enableEmptyAuthChanges` config option added - #137


### Build
* Firebase is now an external in Webpack config (shrinks UMD build size)
* `.npmignore` expanded to include more files that do not needed to be included in published version (including `.babelrc` which can cause build errors)
* `.babelrc` settings are now environment specific (decorators only used in testing)
* `babel-preset-stage-1` removed (unnecessary)
* `.eslintrc` added to tests folder which contains globals that are only necessary for testing (simplifies top level eslint config)
* `.eslintrc` file now using yaml format instead of JSON format (easier to read)
* `async/await` added to unit tests
* Webpack 2
* [`firebase-server`](https://github.com/urish/firebase-server) used in tests instead of connecting to a real Firebase instance

### Docs
* Query docs updated with `storeAs` and `keyProp` query options
* `redux-persist` recipe added
prescottprue added a commit that referenced this pull request Sep 18, 2017
🍾 🥂 The long awaited v1.5.0 release 🥂 🍾

* `browser` field has been removed from `package.json` which means commonJS build is used instead of `UMD` build from Webpack (much smaller)
* [firebaseConnect] Uses `prop-types` instead of importing from React - #122

* [firebaseConnect] Allow usage of different stores in `firebaseConnect` - #148, #29
* [firebaseConnect] statics are now hoisted thanks to `hoist-non-react-statics`
* [firebaseConnect] exposed `createFirebaseConnect` for creating `firebaseConnect` HOCs connected to different stores
* [auth] `login` method supports `credential` parameter (with matching docs and tests updates)
* [auth] deprecation warning added for `token` and `provider` combo in `login` method
* [auth] Adds `updateProfile`, `updateAuth`, and `updateEmail` methods that dispatch associated start/success/failure actions
* [helpers] `deleteFile` method response no longer includes `dbPath` if it is undefined (test added to check this case)
* [helpers] No more race condition with `uniqueSet` - #207
* [typescript] Typescript typings - #142, #214
* [query] `watchEvent` accepts options object as third argument
* [populate] Lodash path syntax support - #132
* [populate] accept a function for populate for item based populate config - #132
* [populate] Profile population (`profileParamsToPopulate`) supports single item and list population - #203
* [storage] `uploadFile` and `uploadFiles` no longer track progress by default (`storageRef.put` called directly)
* [config] Usage of `profileFactory` is wrapped in try/catch to handle and reject errors within provided factory function
* [config] `distpatchOnUnsetListener` spelling fixed to be `dispatchOnUnsetListener` (depreciation warning added along with a test confirm it is displayed)
* [config] `enableEmptyAuthChanges` config option added - #137

* Firebase is now an external in Webpack config (shrinks UMD build size)
* `.npmignore` expanded to include more files that do not needed to be included in published version (including `.babelrc` which can cause build errors)
* `.babelrc` settings are now environment specific (decorators only used in testing)
* `babel-preset-stage-1` removed (unnecessary)
* `.eslintrc` added to tests folder which contains globals that are only necessary for testing (simplifies top level eslint config)
* `.eslintrc` file now using yaml format instead of JSON format (easier to read)
* `async/await` added to unit tests
* Webpack 2
* [`firebase-server`](https://github.com/urish/firebase-server) used in tests instead of connecting to a real Firebase instance

* Query docs updated with `storeAs` and `keyProp` query options
* `redux-persist` recipe added
prescottprue added a commit that referenced this pull request Sep 18, 2017
🍾 🥂 The long awaited v1.5.0 release 🥂 🍾

* `browser` field has been removed from `package.json` which means commonJS build is used instead of `UMD` build from Webpack (much smaller)
* [firebaseConnect] Uses `prop-types` instead of importing from React - #122

* [firebaseConnect] Allow usage of different stores in `firebaseConnect` - #148, #29
* [firebaseConnect] statics are now hoisted thanks to `hoist-non-react-statics`
* [firebaseConnect] exposed `createFirebaseConnect` for creating `firebaseConnect` HOCs connected to different stores
* [auth] `login` method supports `credential` parameter (with matching docs and tests updates)
* [auth] deprecation warning added for `token` and `provider` combo in `login` method
* [auth] Adds `updateProfile`, `updateAuth`, and `updateEmail` methods that dispatch associated start/success/failure actions
* [helpers] `deleteFile` method response no longer includes `dbPath` if it is undefined (test added to check this case)
* [helpers] No more race condition with `uniqueSet` - #207
* [typescript] Typescript typings - #142, #214
* [query] `watchEvent` accepts options object as third argument
* [populate] Lodash path syntax support - #132
* [populate] accept a function for populate for item based populate config - #132
* [populate] Profile population (`profileParamsToPopulate`) supports single item and list population - #203
* [storage] `uploadFile` and `uploadFiles` no longer track progress by default (`storageRef.put` called directly)
* [config] Usage of `profileFactory` is wrapped in try/catch to handle and reject errors within provided factory function
* [config] `distpatchOnUnsetListener` spelling fixed to be `dispatchOnUnsetListener` (depreciation warning added along with a test confirm it is displayed)
* [config] `enableEmptyAuthChanges` config option added - #137

* Firebase is now an external in Webpack config (shrinks UMD build size)
* `.npmignore` expanded to include more files that do not needed to be included in published version (including `.babelrc` which can cause build errors)
* `.babelrc` settings are now environment specific (decorators only used in testing)
* `babel-preset-stage-1` removed (unnecessary)
* `.eslintrc` added to tests folder which contains globals that are only necessary for testing (simplifies top level eslint config)
* `.eslintrc` file now using yaml format instead of JSON format (easier to read)
* `async/await` added to unit tests
* Webpack 2
* [`firebase-server`](https://github.com/urish/firebase-server) used in tests instead of connecting to a real Firebase instance

* Query docs updated with `storeAs` and `keyProp` query options
* `redux-persist` recipe added
prescottprue added a commit that referenced this pull request Sep 18, 2017
🍾 🥂 The long awaited v1.5.0 release 🥂 🍾

* `browser` field has been removed from `package.json` which means commonJS build is used instead of `UMD` build from Webpack (much smaller)
* [firebaseConnect] Uses `prop-types` instead of importing from React - #122

* [firebaseConnect] Allow usage of different stores in `firebaseConnect` - #148, #29
* [firebaseConnect] statics are now hoisted thanks to `hoist-non-react-statics`
* [firebaseConnect] exposed `createFirebaseConnect` for creating `firebaseConnect` HOCs connected to different stores
* [auth] `login` method supports `credential` parameter (with matching docs and tests updates)
* [auth] deprecation warning added for `token` and `provider` combo in `login` method
* [auth] Adds `updateProfile`, `updateAuth`, and `updateEmail` methods that dispatch associated start/success/failure actions
* [helpers] `deleteFile` method response no longer includes `dbPath` if it is undefined (test added to check this case)
* [helpers] No more race condition with `uniqueSet` - #207
* [typescript] Typescript typings - #142, #214
* [query] `watchEvent` accepts options object as third argument
* [populate] Lodash path syntax support - #132
* [populate] accept a function for populate for item based populate config - #132
* [populate] Profile population (`profileParamsToPopulate`) supports single item and list population - #203
* [storage] `uploadFile` and `uploadFiles` no longer track progress by default (`storageRef.put` called directly)
* [config] Usage of `profileFactory` is wrapped in try/catch to handle and reject errors within provided factory function
* [config] `distpatchOnUnsetListener` spelling fixed to be `dispatchOnUnsetListener` (depreciation warning added along with a test confirm it is displayed)
* [config] `enableEmptyAuthChanges` config option added - #137

* Firebase is now an external in Webpack config (shrinks UMD build size)
* `.npmignore` expanded to include more files that do not needed to be included in published version (including `.babelrc` which can cause build errors)
* `.babelrc` settings are now environment specific (decorators only used in testing)
* `babel-preset-stage-1` removed (unnecessary)
* `.eslintrc` added to tests folder which contains globals that are only necessary for testing (simplifies top level eslint config)
* `.eslintrc` file now using yaml format instead of JSON format (easier to read)
* `async/await` added to unit tests
* Webpack 2
* [`firebase-server`](https://github.com/urish/firebase-server) used in tests instead of connecting to a real Firebase instance

* Query docs updated with `storeAs` and `keyProp` query options
* `redux-persist` recipe added
prescottprue added a commit that referenced this pull request Sep 18, 2017
🍾 🥂 The long awaited v1.5.0 release 🥂 🍾

* `browser` field has been removed from `package.json` which means commonJS build is used instead of `UMD` build from Webpack (much smaller)
* [firebaseConnect] Uses `prop-types` instead of importing from React - #122

* [firebaseConnect] Allow usage of different stores in `firebaseConnect` - #148, #29
* [firebaseConnect] statics are now hoisted thanks to `hoist-non-react-statics`
* [firebaseConnect] exposed `createFirebaseConnect` for creating `firebaseConnect` HOCs connected to different stores
* [auth] `login` method supports `credential` parameter (with matching docs and tests updates)
* [auth] deprecation warning added for `token` and `provider` combo in `login` method
* [auth] Adds `updateProfile`, `updateAuth`, and `updateEmail` methods that dispatch associated start/success/failure actions
* [helpers] `deleteFile` method response no longer includes `dbPath` if it is undefined (test added to check this case)
* [helpers] No more race condition with `uniqueSet` - #207
* [typescript] Typescript typings - #142, #214
* [query] `watchEvent` accepts options object as third argument
* [populate] Lodash path syntax support - #132
* [populate] accept a function for populate for item based populate config - #132
* [populate] Profile population (`profileParamsToPopulate`) supports single item and list population - #203
* [storage] `uploadFile` and `uploadFiles` no longer track progress by default (`storageRef.put` called directly)
* [config] Usage of `profileFactory` is wrapped in try/catch to handle and reject errors within provided factory function
* [config] `distpatchOnUnsetListener` spelling fixed to be `dispatchOnUnsetListener` (depreciation warning added along with a test confirm it is displayed)
* [config] `enableEmptyAuthChanges` config option added - #137

* Firebase is now an external in Webpack config (shrinks UMD build size)
* `.npmignore` expanded to include more files that do not needed to be included in published version (including `.babelrc` which can cause build errors)
* `.babelrc` settings are now environment specific (decorators only used in testing)
* `babel-preset-stage-1` removed (unnecessary)
* `.eslintrc` added to tests folder which contains globals that are only necessary for testing (simplifies top level eslint config)
* `.eslintrc` file now using yaml format instead of JSON format (easier to read)
* `async/await` added to unit tests
* Webpack 2
* [`firebase-server`](https://github.com/urish/firebase-server) used in tests instead of connecting to a real Firebase instance

* Query docs updated with `storeAs` and `keyProp` query options
* `redux-persist` recipe added
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants