Transaction
class Transaction : NSObjectTransaction provides methods to read and write data within a transaction.
-
Writes to the document referred to by
document. If the document doesn’t yet exist, this method creates it and then sets the data. If the document exists, this method overwrites the document data with the new values.Declaration
Swift
func setData(_ data: [String : Any], forDocument document: FIRDocumentReference) -> TransactionParameters
dataA
Dictionarythat contains the fields and data to write to the document.documentA reference to the document whose data should be overwritten.
Return Value
This
Transactioninstance. Used for chaining method calls. -
Writes to the document referred to by
document. If the document doesn’t yet exist, this method creates it and then sets the data. If you passmerge:true, the provided data will be merged into any existing document.Declaration
Swift
func setData(_ data: [String : Any], forDocument document: FIRDocumentReference, merge: Bool) -> TransactionParameters
dataA
Dictionarythat contains the fields and data to write to the document.documentA reference to the document whose data should be overwritten.
mergeWhether to merge the provided data into any existing document. If enabled, all omitted fields remain untouched. If your input sets any field to an empty dictionary, any nested field is overwritten.
Return Value
This
Transactioninstance. Used for chaining method calls. -
Writes to the document referred to by
documentand only replace the fields specified undermergeFields. Any field that is not specified inmergeFieldsis ignored and remains untouched. If the document doesn’t yet exist, this method creates it and then sets the data.It is an error to include a field in
mergeFieldsthat does not have a corresponding value in thedatadictionary.Declaration
Swift
func setData(_ data: [String : Any], forDocument document: FIRDocumentReference, mergeFields: [Any]) -> TransactionParameters
dataA
Dictionarycontaining the fields that make up the document to be written.documentA reference to the document whose data should be overwritten.
mergeFieldsAn
Arraythat contains a list ofStringorFieldPathelements specifying which fields to merge. Fields can contain dots to reference nested fields within the document. If your input sets any field to an empty dictionary, any nested field is overwritten.Return Value
This
Transactioninstance. Used for chaining method calls. -
Updates fields in the document referred to by
document. If the document does not exist, the transaction will fail.Declaration
Swift
func updateData(_ fields: [AnyHashable : Any], forDocument document: FIRDocumentReference) -> TransactionParameters
fieldsA
Dictionarycontaining the fields (expressed as anStringorFieldPath) and values with which to update the document.documentA reference to the document whose data should be updated.
Return Value
This
Transactioninstance. Used for chaining method calls. -
Deletes the document referred to by
document.Declaration
Swift
func deleteDocument(_ document: FIRDocumentReference) -> TransactionParameters
documentA reference to the document that should be deleted.
Return Value
This
Transactioninstance. Used for chaining method calls. -
Reads the document referenced by
document.Declaration
Swift
func getDocument(_ document: FIRDocumentReference) throws -> FIRDocumentSnapshotParameters
documentA reference to the document to be read.
errorAn out parameter to capture an error, if one occurred.
-
Encodes an instance of
Encodableand overwrites the encoded data to the document referred bydoc. If no document exists, it is created. If a document already exists, it is overwritten.See
Firestore.Encoderfor more details about the encoding process.Declaration
Swift
@discardableResult func setData<T: Encodable>(from value: T, forDocument doc: DocumentReference, encoder: Firestore.Encoder = Firestore .Encoder()) throws -> TransactionParameters
valuea instance of
Encodedto be encoded to a document.encoderThe encoder instance to use to run the encoding.
docThe document to create/overwrite the encoded data to.
Return Value
This instance of
Transaction. Used for chaining method calls. -
Encodes an instance of
Encodableand overwrites the encoded data to the document referred bydoc. If no document exists, it is created. If a document already exists, it is overwritten. If you pass merge:true, the providedEncodablewill be merged into any existing document.See
Firestore.Encoderfor more details about the encoding process.Declaration
Swift
@discardableResult func setData<T: Encodable>(from value: T, forDocument doc: DocumentReference, merge: Bool, encoder: Firestore.Encoder = Firestore .Encoder()) throws -> TransactionParameters
valueAn instance of
Encodableto be encoded to a document.docThe document to create/overwrite the encoded data to.
mergeWhether to merge the provided
Encodableinto any existing document.encoderThe encoder instance to use to run the encoding.
Return Value
This instance of
Transaction. Used for chaining method calls. -
Encodes an instance of
Encodableand writes the encoded data to the document referred bydocby only replacing the fields specified undermergeFields. Any field that is not specified in mergeFields is ignored and remains untouched. If the document doesn’t yet exist, this method creates it and then sets the data.It is an error to include a field in
mergeFieldsthat does not have a corresponding field in theEncodable.See
Firestore.Encoderfor more details about the encoding process.Declaration
Swift
@discardableResult func setData<T: Encodable>(from value: T, forDocument doc: DocumentReference, mergeFields: [Any], encoder: Firestore.Encoder = Firestore .Encoder()) throws -> TransactionParameters
valueAn instance of
Encodableto be encoded to a document.docThe document to create/overwrite the encoded data to.
mergeFieldsArray of
StringorFieldPathelements specifying which fields to merge. Fields can contain dots to reference nested fields within the document.encoderThe encoder instance to use to run the encoding.
Return Value
This instance of
Transaction. Used for chaining method calls.