[[["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-27 UTC."],[],[],null,["# FirebaseAuth Framework Reference\n\nMultiFactor\n===========\n\n @available(iOS 13, tvOS 13, macOS 10.15, watchOS 7, *)\n @objc(FIRMultiFactor)\n open class MultiFactor : NSObject\n\n extension MultiFactor: NSSecureCoding\n\nThe interface defining the multi factor related properties and operations pertaining to a\nuser.\n\nThis class is available on iOS only.\n- `\n ``\n ``\n `\n\n ### [enrolledFactors](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(py)enrolledFactors)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n @objc\n open var enrolledFactors: [../Classes/MultiFactorInfo.html]\n\n- `\n ``\n ``\n `\n\n ### [getSessionWithCompletion(_:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)getSessionWithCompletion:)\n\n `\n ` \n Get a session for a second factor enrollment operation.\n\n This is used to identify the current user trying to enroll a second factor. \n\n #### Declaration\n\n Swift \n\n @objc(getSessionWithCompletion:)\n open func getSessionWithCompletion(_ completion: ((../Classes.html#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactorSession?, Error?) -\u003e Void)?)\n\n #### Parameters\n\n |--------------------|-------------------------------------------------------------------------------|\n | ` `*completion*` ` | A block with the session identifier for a second factor enrollment operation. |\n\n- `\n ``\n ``\n `\n\n ### [session()](#/s:12FirebaseAuth11MultiFactorC7sessionAA0cD7SessionCyYaKF)\n\n `\n ` \n Get a session for a second factor enrollment operation.\n\n This is used to identify the current user trying to enroll a second factor. \n\n #### Declaration\n\n Swift \n\n @available(iOS 13, tvOS 13, macOS 10.15, watchOS 7, *)\n open func session() async throws -\u003e ../Classes.html#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactorSession\n\n- `\n ``\n ``\n `\n\n ### [enroll(with:displayName:completion:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)enrollWithAssertion:displayName:completion:)\n\n `\n ` \n Enrolls a second factor as identified by the [MultiFactorAssertion](../Classes/MultiFactorAssertion.html) parameter for the\n current user. \n\n #### Declaration\n\n Swift \n\n @objc(enrollWithAssertion:displayName:completion:)\n open func enroll(with assertion: ../Classes/MultiFactorAssertion.html,\n displayName: String?,\n completion: ((Error?) -\u003e Void)?)\n\n #### Parameters\n\n |---------------------|----------------------------------------------------------------------|\n | ` `*assertion*` ` | The [MultiFactorAssertion](../Classes/MultiFactorAssertion.html). |\n | ` `*displayName*` ` | An optional display name associated with the multi factor to enroll. |\n | ` `*completion*` ` | The block invoked when the request is complete, or fails. |\n\n- `\n ``\n ``\n `\n\n ### [enroll(with:displayName:)](#/s:12FirebaseAuth11MultiFactorC6enroll4with11displayNameyAA0cD9AssertionC_SSSgtYaKF)\n\n `\n ` \n Enrolls a second factor as identified by the [MultiFactorAssertion](../Classes/MultiFactorAssertion.html) parameter for the\n current user. \n\n #### Declaration\n\n Swift \n\n @available(iOS 13, tvOS 13, macOS 10.15, watchOS 7, *)\n open func enroll(with assertion: ../Classes/MultiFactorAssertion.html, displayName: String?) async throws\n\n #### Parameters\n\n |---------------------|----------------------------------------------------------------------|\n | ` `*assertion*` ` | The [MultiFactorAssertion](../Classes/MultiFactorAssertion.html). |\n | ` `*displayName*` ` | An optional display name associated with the multi factor to enroll. |\n\n- `\n ``\n ``\n `\n\n ### [unenroll(with:completion:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)unenrollWithInfo:completion:)\n\n `\n ` \n Unenroll the given multi factor. \n\n #### Declaration\n\n Swift \n\n @objc(unenrollWithInfo:completion:)\n open func unenroll(with factorInfo: ../Classes/MultiFactorInfo.html,\n completion: ((Error?) -\u003e Void)?)\n\n #### Parameters\n\n |--------------------|------------------------------------------------------------------------------------------|\n | ` `*factorInfo*` ` | The second factor instance to unenroll. |\n | ` `*completion*` ` | The block invoked when the request to send the verification email is complete, or fails. |\n\n- `\n ``\n ``\n `\n\n ### [unenroll(with:)](#/s:12FirebaseAuth11MultiFactorC8unenroll4withyAA0cD4InfoC_tYaKF)\n\n `\n ` \n Unenroll the given multi factor. \n\n #### Declaration\n\n Swift \n\n @available(iOS 13, tvOS 13, macOS 10.15, watchOS 7, *)\n open func unenroll(with factorInfo: ../Classes/MultiFactorInfo.html) async throws\n\n- `\n ``\n ``\n `\n\n ### [unenroll(withFactorUID:completion:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)unenrollWithFactorUID:completion:)\n\n `\n ` \n Unenroll the given multi factor. \n\n #### Declaration\n\n Swift \n\n @objc(unenrollWithFactorUID:completion:)\n open func unenroll(withFactorUID factorUID: String,\n completion: ((Error?) -\u003e Void)?)\n\n #### Parameters\n\n |--------------------|------------------------------------------------------------------------------------------|\n | ` `*factorUID*` ` | The unique identifier corresponding to the second factor being unenrolled. |\n | ` `*completion*` ` | The block invoked when the request to send the verification email is complete, or fails. |\n\n- `\n ``\n ``\n `\n\n ### [unenroll(withFactorUID:)](#/s:12FirebaseAuth11MultiFactorC8unenroll04withD3UIDySS_tYaKF)\n\n `\n ` \n Unenroll the given multi factor. \n\n #### Declaration\n\n Swift \n\n @available(iOS 13, tvOS 13, macOS 10.15, watchOS 7, *)\n open func unenroll(withFactorUID factorUID: String) async throws\n\n[NSSecureCoding\n--------------](#/NSSecureCoding)\n\n- `\n ``\n ``\n `\n\n ### [supportsSecureCoding](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(cpy)supportsSecureCoding)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n public static let supportsSecureCoding: Bool\n\n- `\n ``\n ``\n `\n\n ### [encode(with:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)encodeWithCoder:)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n public func encode(with coder: NSCoder)\n\n- `\n ``\n ``\n `\n\n ### [init(coder:)](#/c:@M@FirebaseAuth@objc(cs)FIRMultiFactor(im)initWithCoder:)\n\n `\n ` \n Undocumented \n\n #### Declaration\n\n Swift \n\n public required init?(coder: NSCoder)"]]