diff options
Diffstat (limited to 'Firebase/Auth/Source/Public')
-rw-r--r-- | Firebase/Auth/Source/Public/FIRActionCodeSettings.h | 83 | ||||
-rw-r--r-- | Firebase/Auth/Source/Public/FIRAuth.h | 52 | ||||
-rw-r--r-- | Firebase/Auth/Source/Public/FIRAuthErrors.h | 26 | ||||
-rw-r--r-- | Firebase/Auth/Source/Public/FIRUser.h | 36 | ||||
-rw-r--r-- | Firebase/Auth/Source/Public/FirebaseAuth.h | 1 |
5 files changed, 196 insertions, 2 deletions
diff --git a/Firebase/Auth/Source/Public/FIRActionCodeSettings.h b/Firebase/Auth/Source/Public/FIRActionCodeSettings.h new file mode 100644 index 0000000..fef0175 --- /dev/null +++ b/Firebase/Auth/Source/Public/FIRActionCodeSettings.h @@ -0,0 +1,83 @@ +/* + * Copyright 2017 Google + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + #import <Foundation/Foundation.h> + + NS_ASSUME_NONNULL_BEGIN + + /** @class FIRActionCodeSettings + @brief Used to set and retrieve settings related to the handling action codes. + */ + @interface FIRActionCodeSettings : NSObject + + /** @property URL + @brief This URL represents the state/Continue URL in the form of a universal link. + @remarks This URL can should be contructed as a universal link that would either directly open + the app where the action code would be handled or continue to the app after the action code + handled by Firebase. + */ + @property(nonatomic, copy, nullable) NSURL *URL; + + /** @property handleCodeInApp + @brief Indicates whether or not the action code link will open the app directly or after being + redirected from a Firebase owned web widget. + */ + @property(assign, nonatomic) BOOL handleCodeInApp; + + /** @property iOSBundleID + @brief The iOS bundle ID, if available. + */ + @property(copy, nonatomic, readonly, nullable) NSString *iOSBundleID; + + /** @property androidPackageName + @brief The Android package name, if available. + */ + @property(nonatomic, copy, readonly, nullable) NSString *androidPackageName; + + /** @property androidMinimumVersion + @brief The minimum Android version supported, if available. + */ + @property(nonatomic, copy, readonly, nullable) NSString *androidMinimumVersion; + + /** @property androidInstallIfNotAvailable + @brief Indicates whether the Android app should be installed or not on a device where it is not + available. + */ + @property(nonatomic, assign, readonly) BOOL androidInstallIfNotAvailable; + + /** @fn setIOSBundleID + @brief Sets the iOS bundle Id. + @param iOSBundleID The iOS bundle ID. + */ + - (void)setIOSBundleID:(NSString *)iOSBundleID; + + /** @fn setAndroidPackageName:installIfNotAvailable:minimumVersion: + @brief Sets the Android package name, the flag to indicate whether or not to install the app and + the minimum Android version supported. + @param androidPackageName The Android package name. + @param installIfNotAvailable Indicates whether or not the app should be installed if not + available. + @param minimumVersion The minimum version of Android supported. + @remarks If installIfNotAvailable is set to YES and the link is opened on an android device, it + will try to install the app if not already available. Otherwise the web URL is used. + */ + - (void)setAndroidPackageName:(NSString *)androidPackageName + installIfNotAvailable:(BOOL)installIfNotAvailable + minimumVersion:(nullable NSString *)minimumVersion; + + @end + + NS_ASSUME_NONNULL_END diff --git a/Firebase/Auth/Source/Public/FIRAuth.h b/Firebase/Auth/Source/Public/FIRAuth.h index 356c8dd..e120eb2 100644 --- a/Firebase/Auth/Source/Public/FIRAuth.h +++ b/Firebase/Auth/Source/Public/FIRAuth.h @@ -23,6 +23,7 @@ #import "FIRAuthAPNSTokenType.h" #endif +@class FIRActionCodeSettings; @class FIRApp; @class FIRAuth; @class FIRAuthCredential; @@ -252,6 +253,14 @@ FIR_SWIFT_NAME(Auth) */ @property(nonatomic, strong, readonly, nullable) FIRUser *currentUser; +/** @proprty languageCode + @brief The current user language code. This property can be set to the app's current language by + calling @c useAppLanguage. + + @remarks The string used to set this property must be a language code that follows BCP 47. + */ +@property (nonatomic, copy, nullable) NSString *languageCode; + #if TARGET_OS_IOS /** @property APNSToken @brief The APNs token used for phone number authentication. The type of the token (production @@ -531,6 +540,44 @@ FIR_SWIFT_NAME(Auth) - (void)sendPasswordResetWithEmail:(NSString *)email completion:(nullable FIRSendPasswordResetCallback)completion; +/** @fn sendPasswordResetWithEmail:actionCodeSetting:completion: + @brief Initiates a password reset for the given email address and @FIRActionCodeSettings object. + + @param email The email address of the user. + @param actionCodeSettings An @c FIRActionCodeSettings object containing settings related to the + handling action codes. + @param completion Optionally; a block which is invoked when the request finishes. Invoked + asynchronously on the main thread in the future. + + @remarks Possible error codes: + <ul> + <li>@c FIRAuthErrorCodeInvalidRecipientEmail - Indicates an invalid recipient email was + sent in the request. + </li> + <li>@c FIRAuthErrorCodeInvalidSender - Indicates an invalid sender email is set in + the console for this action. + </li> + <li>@c FIRAuthErrorCodeInvalidMessagePayload - Indicates an invalid email template for + sending update email. + </li> + <li>@c FIRAuthErrorCodeMissingIosBundleID - Indicates that the iOS bundle ID is missing when + a iOS App Store ID is provided. + </li> + <li>@c FIRAuthErrorCodeMissingAndroidPackageName - Indicates that the android package name + is missing when the @c androidInstallApp flag is set to true. + </li> + <li>@c FIRAuthErrorCodeUnauthorizedDomain - Indicates that the domain specified in the + continue URL is not whitelisted in the Firebase console. + </li> + <li>@c FIRAuthErrorCodeInvalidContinueURI - Indicates that the domain specified in the + continue URI is not valid. + </li> + </ul> + */ + - (void)sendPasswordResetWithEmail:(NSString *)email + actionCodeSettings:(FIRActionCodeSettings *)actionCodeSettings + completion:(nullable FIRSendPasswordResetCallback)completion; + /** @fn signOut: @brief Signs out the current user. @@ -606,6 +653,11 @@ FIR_SWIFT_NAME(Auth) */ - (void)removeIDTokenDidChangeListener:(FIRIDTokenDidChangeListenerHandle)listenerHandle; +/** @fn useAppLanguage + @brief Sets @c languageCode to the app's current language. + */ +- (void)useAppLanguage; + #if TARGET_OS_IOS /** @fn setAPNSToken:type: @brief Sets the APNs token along with its type. diff --git a/Firebase/Auth/Source/Public/FIRAuthErrors.h b/Firebase/Auth/Source/Public/FIRAuthErrors.h index 0b161f7..2859161 100644 --- a/Firebase/Auth/Source/Public/FIRAuthErrors.h +++ b/Firebase/Auth/Source/Public/FIRAuthErrors.h @@ -188,8 +188,30 @@ typedef NS_ENUM(NSInteger, FIRAuthErrorCode) { */ FIRAuthErrorCodeMissingEmail = 17034, - // The enum values between 17034 and 17041 are reserved and should NOT be used for new error - // codes. + // The enum values 17035 is reserved and should NOT be used for new error codes. + + /** Indicates that the iOS bundle ID is missing when a iOS App Store ID is provided. + */ + FIRAuthErrorCodeMissingIosBundleID = 17036, + + /** Indicates that the android package name is missing when the @c androidInstallApp flag is set + to true. + */ + FIRAuthErrorCodeMissingAndroidPackageName = 17037, + + /** Indicates that the domain specified in the continue URL is not whitelisted in the Firebase + console. + */ + FIRAuthErrorCodeUnauthorizedDomain = 17038, + + /** Indicates that the domain specified in the continue URI is not valid. + */ + FIRAuthErrorCodeInvalidContinueURI = 17039, + + /** Indicates that a continue URI was not provided in a request to the backend which requires + one. + */ + FIRAuthErrorCodeMissingContinueURI = 17040, /** Indicates that a phone number was not provided in a call to @c verifyPhoneNumber:completion:. diff --git a/Firebase/Auth/Source/Public/FIRUser.h b/Firebase/Auth/Source/Public/FIRUser.h index 9e3ac77..8d0e8f6 100644 --- a/Firebase/Auth/Source/Public/FIRUser.h +++ b/Firebase/Auth/Source/Public/FIRUser.h @@ -401,6 +401,42 @@ FIR_SWIFT_NAME(User) */ - (void)sendEmailVerificationWithCompletion:(nullable FIRSendEmailVerificationCallback)completion; +/** @fn sendEmailVerificationWithActionCodeSettings:completion: + @brief Initiates email verification for the user. + + @param actionCodeSettings An @c FIRActionCodeSettings object containing settings related to the + handling action codes. + + @remarks Possible error codes: + <ul> + <li>@c FIRAuthErrorCodeInvalidRecipientEmail - Indicates an invalid recipient email was + sent in the request. + </li> + <li>@c FIRAuthErrorCodeInvalidSender - Indicates an invalid sender email is set in + the console for this action. + </li> + <li>@c FIRAuthErrorCodeInvalidMessagePayload - Indicates an invalid email template for + sending update email. + </li> + <li>@c FIRAuthErrorCodeUserNotFound - Indicates the user account was not found.</li> + <li>@c FIRAuthErrorCodeMissingIosBundleID - Indicates that the iOS bundle ID is missing when + a iOS App Store ID is provided. + </li> + <li>@c FIRAuthErrorCodeMissingAndroidPackageName - Indicates that the android package name + is missing when the @c androidInstallApp flag is set to true. + </li> + <li>@c FIRAuthErrorCodeUnauthorizedDomain - Indicates that the domain specified in the + continue URL is not whitelisted in the Firebase console. + </li> + <li>@c FIRAuthErrorCodeInvalidContinueURI - Indicates that the domain specified in the + continue URI is not valid. + </li> + </ul> + */ +- (void)sendEmailVerificationWithActionCodeSettings:(FIRActionCodeSettings *)actionCodeSettings + completion:(nullable FIRSendEmailVerificationCallback) + completion; + /** @fn deleteWithCompletion: @brief Deletes the user account (also signs out the user, if this was the current user). diff --git a/Firebase/Auth/Source/Public/FirebaseAuth.h b/Firebase/Auth/Source/Public/FirebaseAuth.h index ef4aca6..126645e 100644 --- a/Firebase/Auth/Source/Public/FirebaseAuth.h +++ b/Firebase/Auth/Source/Public/FirebaseAuth.h @@ -22,6 +22,7 @@ #import "FIRGoogleAuthProvider.h" #import "FIROAuthProvider.h" #import "FIRTwitterAuthProvider.h" +#import "FIRActionCodeSettings.h" #import "FIRAdditionalUserInfo.h" #import "FIRAuth.h" #import "FIRAuthCredential.h" |