Skip to content

Releases: Optimal-AI/redux-firestore

v0.16.0 - Turn on Immediate Mode for the UI

30 Jun 12:23
d188673
Compare
Choose a tag to compare

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.15

17 Jun 15:00
88971d8
Compare
Choose a tag to compare
v0.16.0-beta.15 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.14

11 Jun 17:07
9ccfc13
Compare
Choose a tag to compare
v0.16.0-beta.14 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.13

26 May 15:27
4b1a27f
Compare
Choose a tag to compare
v0.16.0-beta.13 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.12

21 May 18:51
86da9e1
Compare
Choose a tag to compare
v0.16.0-beta.12 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.11

30 Apr 19:52
Compare
Choose a tag to compare
v0.16.0-beta.11 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.10

30 Apr 05:13
Compare
Choose a tag to compare
v0.16.0-beta.10 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.9

28 Apr 20:37
3689930
Compare
Choose a tag to compare
v0.16.0-beta.9 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.8

27 Apr 13:15
Compare
Choose a tag to compare
v0.16.0-beta.8 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});

v0.16.0-beta.5

20 Apr 21:04
Compare
Choose a tag to compare
v0.16.0-beta.5 Pre-release
Pre-release

v0.16.0 - Turn on Immediate Mode for the UI

  • Cache Reducer. UI feels instantaneous to users.
    • Enables optimistic updates for new, deleted & updated data.
    • All data changes synchronously reflected in the redux state cache reducer queries.
    • Once Firestore approves/rejects a change it also removes the optimistic commit.
// selector for cache reducer
(state) => state.firebase.firestore.cache[myStoreAs].docs;

// access read-only fragment of Firestore based on all active queries
const document = state.firebase.firestore.cache.database[full_path_to_collection][document_id];
  • Mutate. Simplifies saving, batching and transactions.
    • Easily switch between single saves and atomic transactions.
    • Simplifies complex saves that have to coordinate through multiple actions.
    • Synchronously updates queries in the cache reducer for instance UI feedback for the app.
// single save
getFirestore().mutate({collection: 'tasks', doc: 'task-1', data: {status: 2}});
// batch
getFirestore().mutate([
  {collection: 'tasks', doc: 'task-1', data: {status: 2}},
  {collection: 'tasks', doc: 'task-2', data: {status: 2}},
]);
// transaction, read results use dependency injection for write functions.
getFirestore().mutate({
  reads: { task1: {collection: 'tasks', doc: 'task-1'} },
  writes: [ ({task1}) => ({collection: 'tasks', doc: task1.id, data: { status: task1.status +1 })) ]
});