[[["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 2021-04-28 UTC."],[],[],null,["# Transaction\n\npublic class **Transaction** extends Object \nThe Transaction class encapsulates the functionality needed to perform a transaction on the data\nat a location. \n\n\u003cbr /\u003e\n\n\nTo run a transaction, provide a [Transaction.Handler](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Handler) to [runTransaction(com.google.firebase.database.Transaction.Handler)](/docs/reference/admin/java/reference/com/google/firebase/database/DatabaseReference#runTransaction(com.google.firebase.database.Transaction.Handler)). That handler\nwill be passed the current data at the location, and must return a [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result). A [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) can be created using either [success(MutableData)](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction#success(com.google.firebase.database.MutableData)) or [abort()](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction#abort()). \n\n### Nested Class Summary\n\n|-----------|---|---|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| interface | [Transaction.Handler](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Handler) || An object implementing this interface is used to run a transaction, and will be notified of the results of the transaction. |\n| class | [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) || Instances of this class represent the desired outcome of a single run of a [Transaction.Handler](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Handler)'s doTransaction method. |\n\n### Public Constructor Summary\n\n|---|--------------------------------------------------------------------------------------------------------------|\n| | [Transaction](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction#Transaction())() |\n\n### Public Method Summary\n\n|-------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| static [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) | [abort](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction#abort())() |\n| static [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) | [success](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction#success(com.google.firebase.database.MutableData))([MutableData](/docs/reference/admin/java/reference/com/google/firebase/database/MutableData) resultData) |\n\n### Inherited Method Summary\n\nFrom class java.lang.Object \n\n|------------------|---------------------------|\n| Object | clone() |\n| boolean | equals(Object arg0) |\n| void | finalize() |\n| final Class\\\u003c?\\\u003e | getClass() |\n| int | hashCode() |\n| final void | notify() |\n| final void | notifyAll() |\n| String | toString() |\n| final void | wait(long arg0, int arg1) |\n| final void | wait(long arg0) |\n| final void | wait() |\n\nPublic Constructors\n-------------------\n\n#### public\n**Transaction**\n()\n\n\u003cbr /\u003e\n\nPublic Methods\n--------------\n\n#### public static [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result)\n**abort**\n()\n\n\u003cbr /\u003e\n\n##### Returns\n\n- A [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) that aborts the transaction \n\n#### public static [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result)\n**success**\n([MutableData](/docs/reference/admin/java/reference/com/google/firebase/database/MutableData) resultData)\n\n\u003cbr /\u003e\n\n##### Parameters\n\n| resultData | The desired data at the location |\n|------------|----------------------------------|\n\n##### Returns\n\n- A [Transaction.Result](/docs/reference/admin/java/reference/com/google/firebase/database/Transaction.Result) indicating the new data to be stored at the location"]]