Quellcode durchsuchen

Remote Config: Revert to previous nil check on experiment JSON (#7269)

* Revert to previous nil check on experiment JSON

* Update CHANGELOG
christibbs vor 5 Jahren
Ursprung
Commit
a764d00d25

+ 3 - 0
FirebaseRemoteConfig/CHANGELOG.md

@@ -1,3 +1,6 @@
+# v7.5.0
+- [fixed] Fixed bug that was incorrectly flagging ABT experiment payloads as invalid. (#7184)
+
 # v7.1.0
 - [changed] Add support for other Firebase products to integrate with Remote Config. (#6692)
 

+ 5 - 1
FirebaseRemoteConfig/Sources/RCNConfigExperiment.m

@@ -74,7 +74,11 @@ static NSString *const kMethodNameLatestStartTime =
     if (result[@RCNExperimentTableKeyPayload]) {
       [strongSelf->_experimentPayloads removeAllObjects];
       for (NSData *experiment in result[@RCNExperimentTableKeyPayload]) {
-        if (![NSJSONSerialization isValidJSONObject:experiment]) {
+        NSError *error;
+        id experimentPayloadJSON = [NSJSONSerialization JSONObjectWithData:experiment
+                                                                   options:kNilOptions
+                                                                     error:&error];
+        if (!experimentPayloadJSON || error) {
           FIRLogWarning(kFIRLoggerRemoteConfig, @"I-RCN000031",
                         @"Experiment payload could not be parsed as JSON.");
         } else {

+ 1 - 0
FirebaseRemoteConfig/Tests/Unit/RCNConfigExperimentTest.m

@@ -109,6 +109,7 @@
                           _payloads[payloadIndex++][@"experimentId"]);
   }
 
+  XCTAssertEqualObjects(_payloadsData, _configExperiment.experimentPayloads);
   XCTAssertEqualObjects(_metadata, _configExperiment.experimentMetadata);
 }