This field can be set only when the operation is update.
If the mask is not set for an update and the document exists, any
existing data will be overwritten.
If the mask is set and the document on the server has fields not covered by
the mask, they are left unchanged.
Fields referenced in the mask, but not present in the input document, are
deleted from the document on the server.
The field paths in this mask must not contain a reserved field name.
public RepeatedField<DocumentTransform.Types.FieldTransform> UpdateTransforms { get; }
The transforms to perform after update.
This field can be set only when the operation is update. If present, this
write is equivalent to performing update and transform to the same
document atomically and in order.
[[["Easy to understand","easyToUnderstand","thumb-up"],["Solved my problem","solvedMyProblem","thumb-up"],["Other","otherUp","thumb-up"]],[["Missing the information I need","missingTheInformationINeed","thumb-down"],["Too complicated / too many steps","tooComplicatedTooManySteps","thumb-down"],["Out of date","outOfDate","thumb-down"],["Samples / code issue","samplesCodeIssue","thumb-down"],["Other","otherDown","thumb-down"]],["Last updated 2025-08-07 UTC."],[[["\u003cp\u003eThis document provides reference information for the \u003ccode\u003eWrite\u003c/code\u003e class within the Google Cloud Firestore V1 API for .NET, detailing its functionality as a write operation on a document.\u003c/p\u003e\n"],["\u003cp\u003eThe \u003ccode\u003eWrite\u003c/code\u003e class offers various functionalities such as updating documents, deleting documents, and applying transformations, as demonstrated through its properties like \u003ccode\u003eUpdate\u003c/code\u003e, \u003ccode\u003eDelete\u003c/code\u003e, \u003ccode\u003eTransform\u003c/code\u003e, and \u003ccode\u003eUpdateTransforms\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eThere are multiple versions of the \u003ccode\u003eWrite\u003c/code\u003e class documentation available, ranging from the latest version 3.10.0 down to version 2.3.0, that can be found in the provided links.\u003c/p\u003e\n"],["\u003cp\u003eThe class implements multiple interfaces, including \u003ccode\u003eIMessage\u003c/code\u003e, \u003ccode\u003eIEquatable\u003c/code\u003e, \u003ccode\u003eIDeepCloneable\u003c/code\u003e, and \u003ccode\u003eIBufferMessage\u003c/code\u003e, indicating its capabilities for message handling, object comparison, deep cloning, and buffer message operations.\u003c/p\u003e\n"],["\u003cp\u003eThe class can be instantiated through two constructors, \u003ccode\u003eWrite()\u003c/code\u003e for a default object, and \u003ccode\u003eWrite(Write other)\u003c/code\u003e for creating an object by copying the fields from another \u003ccode\u003eWrite\u003c/code\u003e object.\u003c/p\u003e\n"]]],[],null,["# Firestore v1 API - Class Write (3.10.0)\n\nVersion latestkeyboard_arrow_down\n\n- [3.10.0 (latest)](/dotnet/docs/reference/Google.Cloud.Firestore.V1/latest/Google.Cloud.Firestore.V1.Write)\n- [3.9.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.9.0/Google.Cloud.Firestore.V1.Write)\n- [3.8.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.8.0/Google.Cloud.Firestore.V1.Write)\n- [3.7.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.7.0/Google.Cloud.Firestore.V1.Write)\n- [3.6.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.6.0/Google.Cloud.Firestore.V1.Write)\n- [3.5.1](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.5.1/Google.Cloud.Firestore.V1.Write)\n- [3.4.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.4.0/Google.Cloud.Firestore.V1.Write)\n- [3.3.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.3.0/Google.Cloud.Firestore.V1.Write)\n- [3.2.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.2.0/Google.Cloud.Firestore.V1.Write)\n- [3.1.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.1.0/Google.Cloud.Firestore.V1.Write)\n- [3.0.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/3.0.0/Google.Cloud.Firestore.V1.Write)\n- [2.5.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/2.5.0/Google.Cloud.Firestore.V1.Write)\n- [2.4.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/2.4.0/Google.Cloud.Firestore.V1.Write)\n- [2.3.0](/dotnet/docs/reference/Google.Cloud.Firestore.V1/2.3.0/Google.Cloud.Firestore.V1.Write) \n\n public sealed class Write : IMessage\u003cWrite\u003e, IEquatable\u003cWrite\u003e, IDeepCloneable\u003cWrite\u003e, IBufferMessage, IMessage\n\nReference documentation and code samples for the Firestore v1 API class Write.\n\nA write on a document. \n\nInheritance\n-----------\n\n[object](https://learn.microsoft.com/dotnet/api/system.object) \\\u003e Write \n\nImplements\n----------\n\n[IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage-1.html)[Write](/dotnet/docs/reference/Google.Cloud.Firestore.V1/latest/Google.Cloud.Firestore.V1.Write), [IEquatable](https://learn.microsoft.com/dotnet/api/system.iequatable-1)[Write](/dotnet/docs/reference/Google.Cloud.Firestore.V1/latest/Google.Cloud.Firestore.V1.Write), [IDeepCloneable](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IDeepCloneable-1.html)[Write](/dotnet/docs/reference/Google.Cloud.Firestore.V1/latest/Google.Cloud.Firestore.V1.Write), [IBufferMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IBufferMessage.html), [IMessage](https://cloud.google.com/dotnet/docs/reference/Google.Protobuf/latest/Google.Protobuf.IMessage.html) \n\nInherited Members\n-----------------\n\n[object.GetHashCode()](https://learn.microsoft.com/dotnet/api/system.object.gethashcode) \n[object.GetType()](https://learn.microsoft.com/dotnet/api/system.object.gettype) \n[object.ToString()](https://learn.microsoft.com/dotnet/api/system.object.tostring)\n\nNamespace\n---------\n\n[Google.Cloud.Firestore.V1](/dotnet/docs/reference/Google.Cloud.Firestore.V1/latest/Google.Cloud.Firestore.V1)\n\nAssembly\n--------\n\nGoogle.Cloud.Firestore.V1.dll\n\nConstructors\n------------\n\n### Write()\n\n public Write()\n\n### Write(Write)\n\n public Write(Write other)\n\nProperties\n----------\n\n### CurrentDocument\n\n public Precondition CurrentDocument { get; set; }\n\nAn optional precondition on the document.\n\nThe write will fail if this is set and not met by the target document.\n\n### Delete\n\n public string Delete { get; set; }\n\nA document name to delete. In the format:\n`projects/{project_id}/databases/{database_id}/documents/{document_path}`.\n\n### HasDelete\n\n public bool HasDelete { get; }\n\nGets whether the \"delete\" field is set\n\n### OperationCase\n\n public Write.OperationOneofCase OperationCase { get; }\n\n### Transform\n\n public DocumentTransform Transform { get; set; }\n\nApplies a transformation to a document.\n\n### Update\n\n public Document Update { get; set; }\n\nA document to write.\n\n### UpdateMask\n\n public DocumentMask UpdateMask { get; set; }\n\nThe fields to update in this write.\n\nThis field can be set only when the operation is `update`.\nIf the mask is not set for an `update` and the document exists, any\nexisting data will be overwritten.\nIf the mask is set and the document on the server has fields not covered by\nthe mask, they are left unchanged.\nFields referenced in the mask, but not present in the input document, are\ndeleted from the document on the server.\nThe field paths in this mask must not contain a reserved field name.\n\n### UpdateTransforms\n\n public RepeatedField\u003cDocumentTransform.Types.FieldTransform\u003e UpdateTransforms { get; }\n\nThe transforms to perform after update.\n\nThis field can be set only when the operation is `update`. If present, this\nwrite is equivalent to performing `update` and `transform` to the same\ndocument atomically and in order."]]