Skip to content

Commit cb0b8fd

Browse files
committed
Revert "FirebaseInstallations: CreateInstallation API request error handling (#4024)"
This reverts commit 27384c0.
1 parent 4a8388a commit cb0b8fd

25 files changed

+16
-667
lines changed

FirebaseInstallations/Source/Library/Errors/FIRInstallationsHTTPError.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -52,3 +52,4 @@ typedef NS_ENUM(NSInteger, FIRInstallationsAuthTokenHTTPCode) {
5252
FIRInstallationsAuthTokenHTTPCodeInvalidAuthentication = 401,
5353
FIRInstallationsAuthTokenHTTPCodeFIDNotFound = 404,
5454
};
55+

FirebaseInstallations/Source/Library/FIRInstallationsItem.h

Lines changed: 0 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -20,8 +20,6 @@
2020

2121
@class FIRInstallationsStoredItem;
2222
@class FIRInstallationsStoredAuthToken;
23-
@class FIRInstallationsStoredRegistrationError;
24-
@class FIRInstallationsStoredRegistrationParameters;
2523
@class FIRInstallationsStoredIIDCheckin;
2624

2725
NS_ASSUME_NONNULL_BEGIN
@@ -46,8 +44,6 @@ NS_ASSUME_NONNULL_BEGIN
4644
@property(nonatomic, nullable) FIRInstallationsStoredAuthToken *authToken;
4745
@property(nonatomic, assign) FIRInstallationsStatus registrationStatus;
4846

49-
@property(nonatomic, nullable) FIRInstallationsStoredRegistrationError *registrationError;
50-
5147
/// Instance ID checkin data imported from IID checkin store as a part of IID migration.
5248
@property(nonatomic, nullable) FIRInstallationsStoredIIDCheckin *IIDCheckin;
5349

@@ -85,15 +81,6 @@ NS_ASSUME_NONNULL_BEGIN
8581
*/
8682
+ (NSString *)generateFID;
8783

88-
/**
89-
* Updates `registrationStatus` and `registrationError` accordingly.
90-
* @param error The error for the Installation Registration API request.
91-
* @param registrationParameters The parameters used for the Installation Registration API request.
92-
*/
93-
- (void)updateWithRegistrationError:(NSError *)error
94-
registrationParameters:
95-
(FIRInstallationsStoredRegistrationParameters *)registrationParameters;
96-
9784
@end
9885

9986
NS_ASSUME_NONNULL_END

FirebaseInstallations/Source/Library/FIRInstallationsItem.m

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@
1818

1919
#import "FIRInstallationsStoredAuthToken.h"
2020
#import "FIRInstallationsStoredItem.h"
21-
#import "FIRInstallationsStoredRegistrationError.h"
2221

2322
@implementation FIRInstallationsItem
2423

@@ -47,7 +46,6 @@ - (void)updateWithStoredItem:(FIRInstallationsStoredItem *)item {
4746
self.refreshToken = item.refreshToken;
4847
self.authToken = item.authToken;
4948
self.registrationStatus = item.registrationStatus;
50-
self.registrationError = item.registrationError;
5149
self.IIDCheckin = item.IIDCheckin;
5250
}
5351

@@ -57,7 +55,6 @@ - (FIRInstallationsStoredItem *)storedItem {
5755
storedItem.refreshToken = self.refreshToken;
5856
storedItem.authToken = self.authToken;
5957
storedItem.registrationStatus = self.registrationStatus;
60-
storedItem.registrationError = self.registrationError;
6158
storedItem.IIDCheckin = self.IIDCheckin;
6259
return storedItem;
6360
}
@@ -104,15 +101,4 @@ + (NSString *)base64URLEncodedStringWithData:(NSData *)data {
104101
return string;
105102
}
106103

107-
- (void)updateWithRegistrationError:(NSError *)error
108-
registrationParameters:
109-
(FIRInstallationsStoredRegistrationParameters *)registrationParameters {
110-
self.registrationStatus = FIRInstallationStatusRegistrationFailed;
111-
self.registrationError = [[FIRInstallationsStoredRegistrationError alloc]
112-
initWithRegistrationParameters:registrationParameters
113-
APIError:error];
114-
self.authToken = nil;
115-
self.refreshToken = nil;
116-
}
117-
118104
@end

FirebaseInstallations/Source/Library/FIRInstallationsLogger.h

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -35,21 +35,13 @@ extern NSString *const kFIRInstallationsMessageCodeAPIResponseParsingAuthTokenSu
3535
extern NSString *const kFIRInstallationsMessageCodeNewGetInstallationOperationCreated;
3636
extern NSString *const kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated;
3737
extern NSString *const kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated;
38-
extern NSString *const kFIRInstallationsMessageCodeInvalidFirebaseConfiguration;
3938

4039
// FIRInstallationsStoredItem.m
4140
extern NSString *const kFIRInstallationsMessageCodeInstallationCoderVersionMismatch;
4241

4342
// FIRInstallationsStoredAuthToken.m
4443
extern NSString *const kFIRInstallationsMessageCodeAuthTokenCoderVersionMismatch;
4544

46-
// FIRInstallationsStoredRegistrationError.m
47-
extern NSString *const kFIRInstallationsMessageCodeRegistrationErrorCoderVersionMismatch;
48-
extern NSString *const kFIRInstallationsMessageCodeRegistrationErrorFailedToDecode;
49-
50-
// FIRInstallationsStoredRegistrationParameters.m
51-
extern NSString *const kFIRInstallationsMessageCodeRegistrationParametersCoderVersionMismatch;
52-
5345
// FIRInstallationsStoredIIDCheckin.m
5446
extern NSString *const kFIRInstallationsMessageCodeIIDCheckinCoderVersionMismatch;
5547
extern NSString *const kFIRInstallationsMessageCodeIIDCheckinFailedToDecode;

FirebaseInstallations/Source/Library/FIRInstallationsLogger.m

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -33,22 +33,13 @@
3333
NSString *const kFIRInstallationsMessageCodeNewGetInstallationOperationCreated = @"I-FIS002000";
3434
NSString *const kFIRInstallationsMessageCodeNewGetAuthTokenOperationCreated = @"I-FIS002001";
3535
NSString *const kFIRInstallationsMessageCodeNewDeleteInstallationOperationCreated = @"I-FIS002002";
36-
NSString *const kFIRInstallationsMessageCodeInvalidFirebaseConfiguration = @"I-FIS002003";
3736

3837
// FIRInstallationsStoredItem.m
3938
NSString *const kFIRInstallationsMessageCodeInstallationCoderVersionMismatch = @"I-FIS003000";
4039

4140
// FIRInstallationsStoredAuthToken.m
4241
NSString *const kFIRInstallationsMessageCodeAuthTokenCoderVersionMismatch = @"I-FIS004000";
4342

44-
// FIRInstallationsStoredRegistrationError.m
45-
NSString *const kFIRInstallationsMessageCodeRegistrationErrorCoderVersionMismatch = @"I-FIS005000";
46-
NSString *const kFIRInstallationsMessageCodeRegistrationErrorFailedToDecode = @"I-FIS005001";
47-
48-
// FIRInstallationsStoredRegistrationParameters.m
49-
NSString *const kFIRInstallationsMessageCodeRegistrationParametersCoderVersionMismatch =
50-
@"I-FIS006000";
51-
5243
// FIRInstallationsStoredIIDCheckin.m
5344
NSString *const kFIRInstallationsMessageCodeIIDCheckinCoderVersionMismatch = @"I-FIS007000";
5445
NSString *const kFIRInstallationsMessageCodeIIDCheckinFailedToDecode = @"I-FIS007001";

FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -26,9 +26,6 @@ NS_ASSUME_NONNULL_BEGIN
2626
*/
2727
@interface FIRInstallationsAPIService : NSObject
2828

29-
@property(nonatomic, readonly) NSString *APIKey;
30-
@property(nonatomic, readonly) NSString *projectID;
31-
3229
/**
3330
* The default initializer.
3431
* @param APIKey The Firebase project API key (see `FIROptions.APIKey`).

FirebaseInstallations/Source/Library/InstallationsAPI/FIRInstallationsAPIService.m

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@ - (instancetype)initWithResponse:(NSHTTPURLResponse *)response data:(nullable NS
5757

5858
@interface FIRInstallationsAPIService ()
5959
@property(nonatomic, readonly) NSURLSession *URLSession;
60+
@property(nonatomic, readonly) NSString *APIKey;
61+
@property(nonatomic, readonly) NSString *projectID;
6062
@end
6163

6264
NS_ASSUME_NONNULL_END

FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsIDController.m

Lines changed: 3 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -35,11 +35,6 @@
3535
#import "FIRInstallationsStoredIIDCheckin.h"
3636
#import "FIRSecureStorage.h"
3737

38-
#import "FIRInstallationsHTTPError.h"
39-
#import "FIRInstallationsStoredAuthToken.h"
40-
#import "FIRInstallationsStoredRegistrationError.h"
41-
#import "FIRInstallationsStoredRegistrationParameters.h"
42-
4338
const NSNotificationName FIRInstallationIDDidChangeNotification =
4439
@"FIRInstallationIDDidChangeNotification";
4540
NSString *const kFIRInstallationIDDidChangeNotificationAppNameKey =
@@ -147,21 +142,9 @@ - (instancetype)initWithGoogleAppID:(NSString *)appID
147142
__PRETTY_FUNCTION__, self.appName);
148143

149144
FBLPromise<FIRInstallationsItem *> *installationItemPromise =
150-
[self getStoredInstallation]
151-
.recover(^id(NSError *error) {
152-
return [self createAndSaveFID];
153-
})
154-
.then(^id(FIRInstallationsItem *installation) {
155-
// Validate if a previous registration attempt failed with an error requiring Firebase
156-
// configuration changes.
157-
if (installation.registrationStatus == FIRInstallationStatusRegistrationFailed &&
158-
[self areInstallationRegistrationParametersEqualToCurrent:
159-
installation.registrationError.registrationParameters]) {
160-
return installation.registrationError.APIError;
161-
}
162-
163-
return installation;
164-
});
145+
[self getStoredInstallation].recover(^id(NSError *error) {
146+
return [self createAndSaveFID];
147+
});
165148

166149
// Initiate registration process on success if needed, but return the installation without waiting
167150
// for it.
@@ -180,7 +163,6 @@ - (instancetype)initWithGoogleAppID:(NSString *)appID
180163
switch (installation.registrationStatus) {
181164
case FIRInstallationStatusUnregistered:
182165
case FIRInstallationStatusRegistered:
183-
case FIRInstallationStatusRegistrationFailed:
184166
isValid = YES;
185167
break;
186168

@@ -246,14 +228,6 @@ - (FIRInstallationsItem *)createInstallationWithFID:(NSString *)FID
246228
return installation;
247229
}
248230

249-
- (BOOL)areInstallationRegistrationParametersEqualToCurrent:
250-
(FIRInstallationsStoredRegistrationParameters *)parameters {
251-
NSString *APIKey = self.APIService.APIKey;
252-
NSString *projectID = self.APIService.projectID;
253-
return (parameters.APIKey == APIKey || [parameters.APIKey isEqual:APIKey]) &&
254-
(parameters.projectID == projectID || [parameters.projectID isEqual:projectID]);
255-
}
256-
257231
#pragma mark - FID registration
258232

259233
- (FBLPromise<FIRInstallationsItem *> *)registerInstallationIfNeeded:
@@ -265,15 +239,11 @@ - (BOOL)areInstallationRegistrationParametersEqualToCurrent:
265239

266240
case FIRInstallationStatusUnknown:
267241
case FIRInstallationStatusUnregistered:
268-
case FIRInstallationStatusRegistrationFailed:
269242
// Registration required. Proceed.
270243
break;
271244
}
272245

273246
return [self.APIService registerInstallation:installation]
274-
.recover(^id(NSError *error) {
275-
return [self handleRegistrationRequestError:error installation:installation];
276-
})
277247
.then(^id(FIRInstallationsItem *registeredInstallation) {
278248
// Expected successful result: @[FIRInstallationsItem *registeredInstallation, NSNull]
279249
return [FBLPromise all:@[
@@ -291,56 +261,6 @@ - (BOOL)areInstallationRegistrationParametersEqualToCurrent:
291261
});
292262
}
293263

294-
- (FBLPromise<FIRInstallationsItem *> *)handleRegistrationRequestError:(NSError *)error
295-
installation:
296-
(FIRInstallationsItem *)installation {
297-
if ([self doesRegistrationErrorRequireConfigChange:error]) {
298-
FIRLogError(kFIRLoggerInstallations, kFIRInstallationsMessageCodeInvalidFirebaseConfiguration,
299-
@"Firebase Installation registration failed for app with name: %@, error: "
300-
@"%@\nPlease make sure you use valid GoogleService-Info.plist",
301-
self.appName, error);
302-
303-
FIRInstallationsItem *failedInstallation = [installation copy];
304-
[failedInstallation updateWithRegistrationError:error
305-
registrationParameters:[self currentRegistrationParameters]];
306-
307-
// Save the error and then fail with the API error.
308-
return
309-
[self.installationsStore saveInstallation:failedInstallation].then(^NSError *(id result) {
310-
return error;
311-
});
312-
}
313-
314-
FBLPromise *errorPromise = [FBLPromise pendingPromise];
315-
[errorPromise reject:error];
316-
return errorPromise;
317-
}
318-
319-
- (BOOL)doesRegistrationErrorRequireConfigChange:(NSError *)error {
320-
FIRInstallationsHTTPError *HTTPError = (FIRInstallationsHTTPError *)error;
321-
if (![HTTPError isKindOfClass:[FIRInstallationsHTTPError class]]) {
322-
return NO;
323-
}
324-
325-
switch (HTTPError.HTTPResponse.statusCode) {
326-
// These are the errors that require Firebase configuration change.
327-
case FIRInstallationsRegistrationHTTPCodeInvalidArgument:
328-
case FIRInstallationsRegistrationHTTPCodeInvalidAPIKey:
329-
case FIRInstallationsRegistrationHTTPCodeAPIKeyToProjectIDMismatch:
330-
case FIRInstallationsRegistrationHTTPCodeProjectNotFound:
331-
return YES;
332-
333-
default:
334-
return NO;
335-
}
336-
}
337-
338-
- (FIRInstallationsStoredRegistrationParameters *)currentRegistrationParameters {
339-
return [[FIRInstallationsStoredRegistrationParameters alloc]
340-
initWithAPIKey:self.APIService.APIKey
341-
projectID:self.APIService.projectID];
342-
}
343-
344264
#pragma mark - Auth Token
345265

346266
- (FBLPromise<FIRInstallationsItem *> *)getAuthTokenForcingRefresh:(BOOL)forceRefresh {
@@ -446,7 +366,6 @@ - (id)regenerateFIDOnRefreshTokenErrorIfNeeded:(NSError *)error {
446366
switch (installation.registrationStatus) {
447367
case FIRInstallationStatusUnknown:
448368
case FIRInstallationStatusUnregistered:
449-
case FIRInstallationStatusRegistrationFailed:
450369
// The installation is not registered, so it is safe to be deleted as is, so return early.
451370
return [FBLPromise resolvedWith:installation];
452371
break;

FirebaseInstallations/Source/Library/InstallationsIDController/FIRInstallationsStatus.h

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,4 @@ typedef NS_ENUM(NSInteger, FIRInstallationsStatus) {
3232
FIRInstallationStatusUnregistered,
3333
/// The Firebase Installation has successfully been registered with FIS.
3434
FIRInstallationStatusRegistered,
35-
/// The Firebase Installation registration with FIS failed. Firebase configuration changes are
36-
/// required.
37-
FIRInstallationStatusRegistrationFailed,
3835
};

FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ typedef NS_ENUM(NSInteger, FIRInstallationsAuthTokenStatus) {
5151
@property(nullable, copy) NSDate *expirationDate;
5252

5353
/// The version of local storage.
54-
@property(nonatomic, readonly) NSInteger storageVersion;
54+
@property(nonatomic) NSInteger storageVersion;
5555

5656
@end
5757

FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredAuthToken.m

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -27,15 +27,12 @@
2727

2828
@implementation FIRInstallationsStoredAuthToken
2929

30-
- (NSInteger)storageVersion {
31-
return kFIRInstallationsStoredAuthTokenStorageVersion;
32-
}
33-
3430
- (nonnull id)copyWithZone:(nullable NSZone *)zone {
3531
FIRInstallationsStoredAuthToken *clone = [[FIRInstallationsStoredAuthToken alloc] init];
3632
clone.status = self.status;
3733
clone.token = [self.token copy];
3834
clone.expirationDate = self.expirationDate;
35+
clone.storageVersion = self.storageVersion;
3936
return clone;
4037
}
4138

@@ -44,7 +41,7 @@ - (void)encodeWithCoder:(nonnull NSCoder *)aCoder {
4441
[aCoder encodeObject:self.token forKey:kFIRInstallationsStoredAuthTokenTokenKey];
4542
[aCoder encodeObject:self.expirationDate
4643
forKey:kFIRInstallationsStoredAuthTokenExpirationDateKey];
47-
[aCoder encodeInteger:self.storageVersion
44+
[aCoder encodeInteger:kFIRInstallationsStoredAuthTokenStorageVersion
4845
forKey:kFIRInstallationsStoredAuthTokenStorageVersionKey];
4946
}
5047

FirebaseInstallations/Source/Library/InstallationsStore/FIRInstallationsStoredItem.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,6 @@
1919
#import "FIRInstallationsStatus.h"
2020

2121
@class FIRInstallationsStoredAuthToken;
22-
@class FIRInstallationsStoredRegistrationError;
2322
@class FIRInstallationsStoredIIDCheckin;
2423

2524
NS_ASSUME_NONNULL_BEGIN
@@ -42,13 +41,11 @@ NS_ASSUME_NONNULL_BEGIN
4241
@property(nonatomic, nullable) FIRInstallationsStoredAuthToken *authToken;
4342
@property(nonatomic) FIRInstallationsStatus registrationStatus;
4443

45-
@property(nonatomic, nullable) FIRInstallationsStoredRegistrationError *registrationError;
46-
4744
/// Instance ID checkin data imported from IID checkin store as a part of IID migration.
4845
@property(nonatomic, nullable) FIRInstallationsStoredIIDCheckin *IIDCheckin;
4946

5047
/// The version of local storage.
51-
@property(nonatomic, readonly) NSInteger storageVersion;
48+
@property(nonatomic) NSInteger storageVersion;
5249
@end
5350

5451
NS_ASSUME_NONNULL_END

0 commit comments

Comments
 (0)