A library to have your app interact with Firestore in Elm
Updates configuration.
Type to point document path to operate.
A Path value is always required in calling CRUD operations.
This interface design enforces users to call path function to build Path value beforehand in order to prevent forgetting specifiying path to operate.
Specifies document path.
firestore
|> Firestore.path "users/items/tags"
|> Firestore.get tagsDecoder
|> Task.attempt GotUserItemTagsA record structure for a document fetched from Firestore.
A record structure composed of multiple documents fetched from Firestore.
Name field of Firestore document
Creates a document with a given document id.
Takes the document id as the first argument.
Insert a document into a collection.
The document will get a fresh document id.
Updates an existing document.
Creates one if not present.
Updates only specific fields.
If the fields do not exists, they will be created.
Deletes a document.
Will fail if document does not exist.
A record structure for query operation result
An error type
This type is available in order to disregard type of errors between protocol related errors as Http_ or backend related errors as Response.
Data structure for errors from Firestore
Data type for Transaction
Transaction ID
A time transaction commited at
Starts a new transaction.
Commits a transaction, while optionally updating documents.
Only readWrite transaction is currently supported which requires authorization that can be set via Config.withAuthorization function.
model.firestore
|> Firestore.commit
(transaction
|> Firestore.updateTx "users/user1" newUser1
|> Firestore.updateTx "users/user2" newUser2
|> Firestore.deleteTx "users/user3"
|> Firestore.deleteTx "users/user4"
)
|> Task.attempt CommitedGets a single document in transaction
Lists documents in transaction
Runs a query operation in transaction
Adds update into the transaction
Adds deletion into the transaction
Data type for Firestore.