Skip to content

Commit 7d6cd42

Browse files
committed
Restore public APIs
1 parent aca97fe commit 7d6cd42

File tree

4 files changed

+26
-12
lines changed

4 files changed

+26
-12
lines changed

FirebaseAuth/CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
# Unreleased
2+
- [fixed] Updated most decoders to be consistent with Firebase 10's behavior
3+
for decoding `nil` values. (#14212)
4+
5+
16
# 11.6.0
27
- [added] Added reCAPTCHA Enterprise support for app verification during phone
38
authentication for Firebase Authentication (#14114)

FirebaseAuth/Sources/Swift/Auth/AuthDataResult.swift

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ extension AuthDataResult: NSSecureCoding {}
2424
@available(iOS 13, tvOS 13, macOS 10.15, macCatalyst 13, watchOS 7, *)
2525
@objc(FIRAuthDataResult) open class AuthDataResult: NSObject {
2626
/// The signed in user.
27-
@objc public let user: User?
27+
@objc public let user: User
2828

2929
/// If available, contains the additional IdP specific information about signed in user.
3030
@objc public let additionalUserInfo: AdditionalUserInfo?
@@ -63,7 +63,10 @@ extension AuthDataResult: NSSecureCoding {}
6363
}
6464

6565
public required init?(coder: NSCoder) {
66-
user = coder.decodeObject(of: User.self, forKey: kUserCodingKey) as User?
66+
guard let user = coder.decodeObject(of: User.self, forKey: kUserCodingKey) else {
67+
return nil
68+
}
69+
self.user = user
6770
additionalUserInfo = coder.decodeObject(of: AdditionalUserInfo.self,
6871
forKey: kAdditionalUserInfoCodingKey)
6972
credential = coder.decodeObject(of: OAuthCredential.self, forKey: kCredentialCodingKey)

FirebaseAuth/Sources/Swift/MultiFactor/MultiFactorInfo.swift

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -28,10 +28,10 @@ import Foundation
2828
@objc public let displayName: String?
2929

3030
/// The second factor enrollment date.
31-
@objc public let enrollmentDate: Date?
31+
@objc public let enrollmentDate: Date
3232

3333
/// The identifier of the second factor.
34-
@objc public let factorID: String?
34+
@objc public let factorID: String
3535

3636
init(proto: AuthProtoMFAEnrollment, factorID: String) {
3737
guard let uid = proto.mfaEnrollmentID else {
@@ -60,14 +60,17 @@ import Foundation
6060
}
6161

6262
public required init?(coder: NSCoder) {
63-
guard let uid = coder.decodeObject(of: [NSString.self], forKey: kUIDCodingKey) as? String
63+
guard let uid = coder.decodeObject(of: [NSString.self], forKey: kUIDCodingKey) as? String,
64+
let factorID = coder.decodeObject(of: [NSString.self],
65+
forKey: kFactorIDCodingKey) as? String,
66+
let enrollmentDate = coder.decodeObject(of: [NSDate.self],
67+
forKey: kEnrollmentDateCodingKey) as? Date
6468
else {
6569
return nil
6670
}
6771
self.uid = uid
68-
factorID = coder.decodeObject(of: NSString.self, forKey: kFactorIDCodingKey) as String?
69-
enrollmentDate = coder.decodeObject(of: NSDate.self,
70-
forKey: kEnrollmentDateCodingKey) as Date?
72+
self.factorID = factorID
73+
self.enrollmentDate = enrollmentDate
7174
displayName = coder.decodeObject(
7275
of: [NSString.self],
7376
forKey: kDisplayNameCodingKey

FirebaseAuth/Sources/Swift/User/AdditionalUserInfo.swift

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import Foundation
1717
extension AdditionalUserInfo: NSSecureCoding {}
1818
@objc(FIRAdditionalUserInfo) open class AdditionalUserInfo: NSObject {
1919
/// The provider identifier.
20-
@objc public let providerID: String?
20+
@objc public let providerID: String
2121

2222
/// Dictionary containing the additional IdP specific information.
2323
@objc public let profile: [String: Any]?
@@ -35,7 +35,7 @@ extension AdditionalUserInfo: NSSecureCoding {}
3535
return isNewUser
3636
}
3737

38-
init(providerID: String?, profile: [String: Any]?, username: String?, isNewUser: Bool) {
38+
init(providerID: String, profile: [String: Any]?, username: String?, isNewUser: Bool) {
3939
self.providerID = providerID
4040
self.profile = profile
4141
self.username = username
@@ -52,10 +52,13 @@ extension AdditionalUserInfo: NSSecureCoding {}
5252
public static let supportsSecureCoding = true
5353

5454
public required init?(coder aDecoder: NSCoder) {
55-
providerID = aDecoder.decodeObject(
55+
guard let providerID = aDecoder.decodeObject(
5656
of: NSString.self,
5757
forKey: AdditionalUserInfo.providerIDCodingKey
58-
) as String?
58+
) as? String else {
59+
return nil
60+
}
61+
self.providerID = providerID
5962
profile = aDecoder.decodeObject(
6063
of: [NSDictionary.self, NSString.self],
6164
forKey: AdditionalUserInfo.profileCodingKey

0 commit comments

Comments
 (0)