Skip to content

Commit d459655

Browse files
authored
Add FID into real-time RC requests (#11485)
* Set FID in realtime request * Update request method naming * Update test * Fix tests * Fix test
1 parent aedf427 commit d459655

File tree

2 files changed

+24
-7
lines changed

2 files changed

+24
-7
lines changed

FirebaseRemoteConfig/Sources/RCNConfigRealtime.m

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -298,7 +298,7 @@ - (void)refreshInstallationsTokenWithCompletionHandler:
298298
[installations authTokenWithCompletion:installationsTokenHandler];
299299
}
300300

301-
- (void)setRequestBody {
301+
- (NSData *)createRequestBody {
302302
[self refreshInstallationsTokenWithCompletionHandler:^(FIRRemoteConfigFetchStatus status,
303303
NSError *_Nullable error) {
304304
if (status != FIRRemoteConfigFetchStatusSuccess) {
@@ -315,14 +315,13 @@ - (void)setRequestBody {
315315
NSString *namespace = [_namespace substringToIndex:[_namespace rangeOfString:@":"].location];
316316
NSString *postBody = [NSString
317317
stringWithFormat:@"{project:'%@', namespace:'%@', lastKnownVersionNumber:'%@', appId:'%@', "
318-
@"sdkVersion:'%@'}",
318+
@"sdkVersion:'%@', appInstanceId:'%@'}",
319319
[self->_options GCMSenderID], namespace, _configFetch.templateVersionNumber,
320-
_options.googleAppID, FIRRemoteConfigPodVersion()];
320+
_options.googleAppID, FIRRemoteConfigPodVersion(),
321+
_settings.configInstallationsIdentifier];
321322
NSData *postData = [postBody dataUsingEncoding:NSUTF8StringEncoding];
322323
NSError *compressionError;
323-
NSData *compressedContent = [NSData gul_dataByGzippingData:postData error:&compressionError];
324-
325-
[_request setHTTPBody:compressedContent];
324+
return [NSData gul_dataByGzippingData:postData error:&compressionError];
326325
}
327326

328327
/// Creates request.
@@ -665,7 +664,8 @@ - (void)beginRealtimeStream {
665664

666665
if (canMakeConnection) {
667666
strongSelf->_isRequestInProgress = true;
668-
[strongSelf setRequestBody];
667+
NSData *compressedContent = [strongSelf createRequestBody];
668+
[strongSelf->_request setHTTPBody:compressedContent];
669669
strongSelf->_dataTask = [strongSelf->_session dataTaskWithRequest:strongSelf->_request];
670670
[strongSelf->_dataTask resume];
671671
}

FirebaseRemoteConfig/Tests/Unit/RCNRemoteConfigTest.m

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,7 @@ - (void)scheduleFetch:(NSInteger)remainingAttempts targetVersion:(NSInteger)targ
7272
- (void)autoFetch:(NSInteger)remainingAttempts targetVersion:(NSInteger)targetVersion;
7373
- (void)beginRealtimeStream;
7474
- (void)pauseRealtimeStream;
75+
- (NSData *)createRequestBody;
7576

7677
- (FIRConfigUpdateListenerRegistration *_Nonnull)addConfigUpdateListener:
7778
(RCNConfigUpdateCompletion _Nonnull)listener;
@@ -243,6 +244,7 @@ - (void)setUp {
243244
settings:_settings
244245
namespace:_fullyQualifiedNamespace
245246
options:currentOptions]);
247+
_settings.configInstallationsIdentifier = @"iid";
246248

247249
OCMStubRecorder *mock = OCMStub([_configFetch[i] fetchConfigWithExpirationDuration:0
248250
completionHandler:OCMOCK_ANY]);
@@ -1765,6 +1767,21 @@ - (void)testRealtimeDisabled {
17651767
}
17661768
}
17671769

1770+
- (void)testRealtimeStreamRequestBody {
1771+
NSError *error;
1772+
NSData *requestBody = [_configRealtime[0] createRequestBody];
1773+
NSData *uncompressedRequest = [NSData gul_dataByInflatingGzippedData:requestBody error:&error];
1774+
NSString *strData = [[NSString alloc] initWithData:uncompressedRequest
1775+
encoding:NSUTF8StringEncoding];
1776+
1777+
XCTAssertTrue([strData containsString:@"project:'correct_gcm_sender_id'"]);
1778+
XCTAssertTrue([strData containsString:@"namespace:'firebase'"]);
1779+
XCTAssertTrue([strData containsString:@"lastKnownVersionNumber:'0'"]);
1780+
XCTAssertTrue([strData containsString:@"appId:'1:123:ios:123abc'"]);
1781+
XCTAssertTrue([strData containsString:@"sdkVersion:"]);
1782+
XCTAssertTrue([strData containsString:@"appInstanceId:'iid'"]);
1783+
}
1784+
17681785
#pragma mark - Test Helpers
17691786

17701787
- (FIROptions *)firstAppOptions {

0 commit comments

Comments
 (0)