Firestorter

Use Firestore in React with zero effort, using MobX 🤘

Unreleased
1.1.1
November 29, 2018
fixed
  • Fixed Mode import not working

1.1.0
November 23, 2018
added
  • Added support for MobX strict mode (enforceActions: 'always')

  • Added Document.hasData, which can be used to check whether the document exists/has been fetched

  • Added Document snapshotOptions option, to control how Firestore server-timestamps are handled in snapshots

  • Added support for handling Timestamps in schemas, using the new isTimestamp helper function

fixed
  • Fixed various TypeScript type definition errors

  • Fixed Document.data not cleared after getting get a fetch-error

  • Fixed Collection.docs not cleared after changing path/ref to a non-accessible collection

1.0.4
November 20, 2018
added
  • Added TypeScript as a first-class language (converted to TypeScript and added type-bindings)

  • Added Collection createDocument factory function, in which documents can be created based on the snapshot data (new Collection({createDocument: (source, options) => return new Document(source, options)})))

  • Added documentation for using firestorter with TypeScript and react-native

removed
  • Removed deprecated active property from Collection & Document (use isActive instead)

  • Removed deprecated fetching property from Collection & Document (use isLoading instead)

deprecated
  • The Collection DocumentClass constructor option has been deprecated (use createDocument instead)

fixed
  • Fixed exception when accessing Document.source or Collection.source

0.16.1
September 28, 2018
fixed
  • Fixed schema validation in Document.update or Document.set sometimes failed, when data document data contained arrays or sub-objects

0.16.0
September 24, 2018
added
  • Added ability to disable the Collection by returning null from a query function (this may break some things)

  • Added automatic removal of all documents from a Collection when it is disabled (when path or ref is cleared or query is set to null)

changed
  • Made snapshot errors more verbose so simplify debugging

0.15.4
September 14, 2018
fixed
  • Fixed exception when calling .update() on a document with a schema, that has not yet been fetched

0.15.3
September 13, 2018
fixed
  • Fixed lodash.isequal not defined as a direct dependency

0.15.2
September 12, 2018
added
  • Added logging of onSnapshot errors

fixed
  • Fixed exception when fetching a Document which doesn’t exist and which has a schema defined

0.15.1
September 5, 2018
added
  • Added log-message when Document snapshot failed

fixed
  • Fixed schema validation error not using the debugName when specified to constructor

0.15.0
August 31, 2018
added
  • Added support for code-debugging and smaller bundles on react-native (react-native entry in package.json)

  • Added support for specifying a specific firebase-app to use, instead of always using the default firebase app (initFirestorter({firebase, app}))

0.14.2
July 12, 2018
added
  • Added debug statement to log Document snapshot updates

fixed
  • Fixed Document not triggering a reaction after calling Document.update with a field-path

0.14.1
July 11, 2018
fixed
  • Fixed schema violation in Document.update/set when using a dotted FieldPath.

  • Fixed schema violation in Document.update/set when deleting fields using FieldValue.delete().

0.14.0
June 17, 2018
added
  • Added Collection.minimizeUpdates option to prevent multiple updates when starting real-time updates on a Collection. This happens when some of the query results are loally cached, causing Firestore to fire multiple onSnapshot events. Enabling this option causes Firestorter to skip/debounce the first local snapshot, in favor of the full result received slightly later from the cloud.

fixed
  • Fixed unneccessary re-start of real-time updates on Collection when the query changes.

0.12.1
June 11, 2018
removed
  • Removed obsolete firestore snapshot fields Document.createTime, Document.updateTime and Document.readTime

changed
  • Replaced fetching with the isLoading property (better name + isLoading also causes realtime updates to become active, fixes #18)

  • Renamed active prop to isActive (active still supported but shows deprecation warning)

fixed
  • Fixed Collection.add still writing to firestore when schema didn't validate

0.11.1
June 4, 2018
fixed
  • Fixed Document.update throwing exception when schema was used.

0.11.0
May 30, 2018
added
  • Added new method for defining queries using an observed function (e.g. col.query = (ref) => ref.orderBy('text', 'asc')). This is now the new recommended way for defining queries.

0.10.0
March 27, 2018
added
  • Added support for MobX 4 (for MobX 3.x, use 0.9.3 or lower)

  • Added donation link and sponsor acknowledgements

  • Added CHANGELOG.md & release-notes badge

0.9.3
January 21, 2018
added
  • Made getFirestore available externally

0.9.2
January 21, 2018
added
  • Added code coverage

  • Added additional unit tests

changed
  • Removed firebase as a peer dependency

  • Various updates to docs

fixed
  • Fixed Promise not rejected on Collection.add, when invalid doc-data was specified

0.9.1
January 7, 2018
added
  • Added Document.ready and Collection.ready

  • Added lots of unit tests

changed
  • Path observations are now immediate

  • Updated docs

0.9.0
January 1, 2018
added
  • Added ability to specify reactive-functions to the ref, path and query property of Document & Collection

  • Added Document.active and Collection.active property which indicates whether real-time updating is current active

  • Added Document.set operation

  • Added unit tests for Document & Collection (wip)

changed
  • The realtimeUpdating property has been renamed to mode (realtimeUpdating has been deprecated and will be removed soon)

  • Many documentation updates

fixed
  • Minor fixes