Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Using Performance together with Remote Config impedes the activation of Remote Config remote values #7179

Closed
chwo opened this issue Dec 16, 2020 · 5 comments · Fixed by #7373

Comments

@chwo
Copy link

chwo commented Dec 16, 2020

[REQUIRED] Step 1: Describe your environment

  • Xcode version: 12.3
  • Firebase SDK version: 7.3.0
  • Installation method: CocoaPods
  • Firebase Component: Remote Config, Performance

[REQUIRED] Step 2: Describe the problem

Steps to reproduce:

  • The Remote Config is set up in func application(_:didFinishLaunchingWithOptions:) to activate the currently fetched remote values and after that fetches new remote values to activate at the next app start.
  • This means that from the second app start the activation method should activate the fetched remote values.
  • When FirebasePerfomance is also installed, the fetching process succeeds as before but the activation process does not work anymore as expected.
  • The activateWithCompletion completion handler gets called but its changed property is always false and calling config.allKeys(from: .remote) always returns 0. This suggests that there are no remote values to be activated but there should be because the fetch completed successfully.
  • I could successfully fix this behaviour by removing FirebasePerformance.

Relevant Code:

func setupRemoteConfig() {
    let config = RemoteConfig.remoteConfig()
    config.setDefaults(fromPlist: "RemoteConfigDefaults")
    config.activate(completion: { changed, _ in
        if changed {
            config.allKeys(from: .remote).forEach { key in
                if let value = config[key].stringValue {
                    UserDefaults.standard.setValue(value, forKey: key)
                }
            }
        }
    })
    config.fetch(completionHandler: nil)
}

Podfile:

Podfile.lock

PODS:
...
  - Firebase/AdMob (7.3.0):
    - Firebase/CoreOnly
    - Google-Mobile-Ads-SDK (~> 7.66)
  - Firebase/Analytics (7.3.0):
    - Firebase/Core
  - Firebase/Core (7.3.0):
    - Firebase/CoreOnly
    - FirebaseAnalytics (= 7.3.0)
  - Firebase/CoreOnly (7.3.0):
    - FirebaseCore (= 7.3.0)
  - Firebase/Crashlytics (7.3.0):
    - Firebase/CoreOnly
    - FirebaseCrashlytics (~> 7.3.0)
  - Firebase/Functions (7.3.0):
    - Firebase/CoreOnly
    - FirebaseFunctions (~> 7.3.0)
  - Firebase/InAppMessaging (7.3.0):
    - Firebase/CoreOnly
    - FirebaseInAppMessaging (~> 7.3.0-beta)
  - Firebase/Messaging (7.3.0):
    - Firebase/CoreOnly
    - FirebaseMessaging (~> 7.3.0)
  - Firebase/Performance (7.3.0):
    - Firebase/CoreOnly
    - FirebasePerformance (~> 7.3.0)
  - Firebase/RemoteConfig (7.3.0):
    - Firebase/CoreOnly
    - FirebaseRemoteConfig (~> 7.3.0)
  - FirebaseABTesting (7.3.0):
    - FirebaseCore (~> 7.0)
  - FirebaseAnalytics (7.3.0):
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - GoogleAppMeasurement (= 7.3.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.0)
    - GoogleUtilities/MethodSwizzler (~> 7.0)
    - GoogleUtilities/Network (~> 7.0)
    - "GoogleUtilities/NSData+zlib (~> 7.0)"
    - nanopb (~> 2.30906.0)
  - FirebaseCore (7.3.0):
    - FirebaseCoreDiagnostics (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/Logger (~> 7.0)
  - FirebaseCoreDiagnostics (7.3.0):
    - GoogleDataTransport (~> 8.0)
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/Logger (~> 7.0)
    - nanopb (~> 2.30906.0)
  - FirebaseCrashlytics (7.3.0):
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - GoogleDataTransport (~> 8.0)
    - nanopb (~> 2.30906.0)
    - PromisesObjC (~> 1.2)
  - FirebaseFunctions (7.3.0):
    - FirebaseCore (~> 7.0)
    - GTMSessionFetcher/Core (~> 1.4)
  - FirebaseInAppMessaging (7.3.0-beta):
    - FirebaseABTesting (~> 7.0)
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - nanopb (~> 2.30906.0)
  - FirebaseInstallations (7.3.0):
    - FirebaseCore (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/UserDefaults (~> 7.0)
    - PromisesObjC (~> 1.2)
  - FirebaseInstanceID (7.3.0):
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/UserDefaults (~> 7.0)
  - FirebaseMessaging (7.3.0):
    - FirebaseCore (~> 7.0)
    - FirebaseInstanceID (~> 7.0)
    - GoogleUtilities/AppDelegateSwizzler (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/Reachability (~> 7.0)
    - GoogleUtilities/UserDefaults (~> 7.0)
  - FirebasePerformance (7.3.0):
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - FirebaseRemoteConfig (~> 7.0)
    - GoogleDataTransport (~> 8.1)
    - GoogleToolboxForMac/Logger (~> 2.1)
    - "GoogleToolboxForMac/NSData+zlib (~> 2.1)"
    - GoogleUtilities/Environment (~> 7.0)
    - GoogleUtilities/ISASwizzler (~> 7.0)
    - GoogleUtilities/MethodSwizzler (~> 7.0)
    - GTMSessionFetcher/Core (~> 1.1)
    - Protobuf (~> 3.12)
  - FirebaseRemoteConfig (7.3.0):
    - FirebaseABTesting (~> 7.0)
    - FirebaseCore (~> 7.0)
    - FirebaseInstallations (~> 7.0)
    - GoogleUtilities/Environment (~> 7.0)
    - "GoogleUtilities/NSData+zlib (~> 7.0)"
  - Google-Mobile-Ads-SDK (7.69.0):
    - GoogleAppMeasurement (~> 7.0)
    - GoogleUserMessagingPlatform (~> 1.1)
  - GoogleAppMeasurement (7.3.0):
    - GoogleUtilities/AppDelegateSwizzler (~> 7.0)
    - GoogleUtilities/MethodSwizzler (~> 7.0)
    - GoogleUtilities/Network (~> 7.0)
    - "GoogleUtilities/NSData+zlib (~> 7.0)"
    - nanopb (~> 2.30906.0)
  - GoogleDataTransport (8.1.0):
    - nanopb (~> 2.30906.0)
  - GoogleToolboxForMac/Defines (2.3.0)
  - GoogleToolboxForMac/Logger (2.3.0):
    - GoogleToolboxForMac/Defines (= 2.3.0)
  - "GoogleToolboxForMac/NSData+zlib (2.3.0)":
    - GoogleToolboxForMac/Defines (= 2.3.0)
  - GoogleUserMessagingPlatform (1.4.0)
  - GoogleUtilities (7.1.1):
    - GoogleUtilities/AppDelegateSwizzler (= 7.1.1)
    - GoogleUtilities/Environment (= 7.1.1)
    - GoogleUtilities/ISASwizzler (= 7.1.1)
    - GoogleUtilities/Logger (= 7.1.1)
    - GoogleUtilities/MethodSwizzler (= 7.1.1)
    - GoogleUtilities/Network (= 7.1.1)
    - "GoogleUtilities/NSData+zlib (= 7.1.1)"
    - GoogleUtilities/Reachability (= 7.1.1)
    - GoogleUtilities/SwizzlerTestHelpers (= 7.1.1)
    - GoogleUtilities/UserDefaults (= 7.1.1)
  - GoogleUtilities/AppDelegateSwizzler (7.1.1):
    - GoogleUtilities/Environment
    - GoogleUtilities/Logger
    - GoogleUtilities/Network
  - GoogleUtilities/Environment (7.1.1):
    - PromisesObjC (~> 1.2)
  - GoogleUtilities/ISASwizzler (7.1.1)
  - GoogleUtilities/Logger (7.1.1):
    - GoogleUtilities/Environment
  - GoogleUtilities/MethodSwizzler (7.1.1):
    - GoogleUtilities/Logger
  - GoogleUtilities/Network (7.1.1):
    - GoogleUtilities/Logger
    - "GoogleUtilities/NSData+zlib"
    - GoogleUtilities/Reachability
  - "GoogleUtilities/NSData+zlib (7.1.1)"
  - GoogleUtilities/Reachability (7.1.1):
    - GoogleUtilities/Logger
  - GoogleUtilities/SwizzlerTestHelpers (7.1.1):
    - GoogleUtilities/MethodSwizzler
  - GoogleUtilities/UserDefaults (7.1.1):
    - GoogleUtilities/Logger
  - GTMSessionFetcher/Core (1.5.0)
  - nanopb (2.30906.0):
    - nanopb/decode (= 2.30906.0)
    - nanopb/encode (= 2.30906.0)
  - nanopb/decode (2.30906.0)
  - nanopb/encode (2.30906.0)
...
  - Protobuf (3.14.0)

DEPENDENCIES:
...
  - Firebase/AdMob
  - Firebase/Analytics
  - Firebase/Core
  - Firebase/Crashlytics
  - Firebase/Functions
  - Firebase/InAppMessaging
  - Firebase/Messaging
  - Firebase/Performance
  - Firebase/RemoteConfig
  - GoogleUtilities
...

SPEC REPOS:
  https://github.com/CocoaPods/Specs.git:
...
    - Firebase
    - FirebaseABTesting
    - FirebaseAnalytics
    - FirebaseCore
    - FirebaseCoreDiagnostics
    - FirebaseCrashlytics
    - FirebaseFunctions
    - FirebaseInAppMessaging
    - FirebaseInstallations
    - FirebaseInstanceID
    - FirebaseMessaging
    - FirebasePerformance
    - FirebaseRemoteConfig
    - Google-Mobile-Ads-SDK
    - GoogleAppMeasurement
    - GoogleDataTransport
    - GoogleToolboxForMac
    - GoogleUserMessagingPlatform
    - GoogleUtilities
    - GTMSessionFetcher
    - nanopb
...
    - Protobuf

SPEC CHECKSUMS:
...
  Firebase: 26223c695fe322633274198cb19dca8cb7e54416
  FirebaseABTesting: 303b5366c0c75be479424e8935e2f475cf24ce21
  FirebaseAnalytics: 2580c2d62535ae7b644143d48941fcc239ea897a
  FirebaseCore: 4d3c72622ce0e2106aaa07bb4b2935ba2c370972
  FirebaseCoreDiagnostics: d50e11039e5984d92c8a512be2395f13df747350
  FirebaseCrashlytics: d31325312c92e2cb2f0386d589b9aa44e303d99b
  FirebaseFunctions: 56b7275ad46d936b77b64ecacd306e77db7be251
  FirebaseInAppMessaging: 9436b16bbd1fd02bcb50c25ed485150b3269d611
  FirebaseInstallations: 971df89b48ae5ee4cc2bf6935f3857a525d28550
  FirebaseInstanceID: 5ccdee6a84e6b4bb5316de0a8cd88bc749ba490d
  FirebaseMessaging: 68d1bcb14880189558a8ae57167abe0b7e417232
  FirebasePerformance: 7915b7dfc8258030d5fac9544d7fa6b55fbe3e57
  FirebaseRemoteConfig: 826fad8bec5ce1912ef97a124d6ec0ce4dcf6ec1
  Google-Mobile-Ads-SDK: 2f288748a42920d1c744946a460896a95b0e9110
  GoogleAppMeasurement: 8d3c0aeede16ab7764144b5a4ca8e1d4323841b7
  GoogleDataTransport: 116c84c4bdeb76be2a7a46de51244368f9794eab
  GoogleToolboxForMac: 1350d40e86a76f7863928d63bcb0b89c84c521c5
  GoogleUserMessagingPlatform: b168e8c46cd8f92aa3e34b584c4ca78a411ce367
  GoogleUtilities: 3dc4ff0d5e4840e2fa8eef0889620e8c33d4218c
  GTMSessionFetcher: b3503b20a988c4e20cc189aa798fd18220133f52
  nanopb: 1bf24dd71191072e120b83dd02d08f3da0d65e53
...
  Protobuf: 0cde852566359049847168e51bd1c690e0f70056

PODFILE CHECKSUM: 11163c2b7e65cd88d7da843f3d7bbb1026b002c2

COCOAPODS: 1.10.0

@google-oss-bot
Copy link

I found a few problems with this issue:

  • I couldn't figure out how to label this issue, so I've labeled it for a human to triage. Hang tight.
  • This issue does not seem to follow the issue template. Make sure you provide all the required information.

@visumickey
Copy link
Contributor

@chwo Thanks for reporting this issue. We are trying to reproduce this issue and unfortunately we are not able to.

Here are the steps I followed:

  1. Created a fresh app, integrated with Firebase performance and Firebase Remote Config.
  2. Added a new remote config key (performance_test) and value (true) in the Firebase Console
  3. In the appDidFinishLaunchingOptions, added piece of code to fetch the remote config values (and not activate). Delay for 150 seconds (to ensure firebase performance config fetches are done and activated) and try to ascertain that the value of the remote config is default value - false.
  [[FIRRemoteConfig remoteConfig] fetchWithCompletionHandler:^(FIRRemoteConfigFetchStatus status, NSError * _Nullable error) {
    NSLog(@"Config fetched. Not activated.");
    NSLog(@"Fetched value for config - %d", [[[FIRRemoteConfig remoteConfig] configValueForKey:@"performance_test"] boolValue]);
    dispatch_after(dispatch_time(DISPATCH_TIME_NOW, (int64_t)(150.0 * NSEC_PER_SEC)), dispatch_get_main_queue(), ^{
      NSLog(@"Value of remote config after 150 seconds without app activation - %d", [[[FIRRemoteConfig remoteConfig] configValueForKey:@"performance_test"] boolValue]);
//          [[FIRRemoteConfig remoteConfig] activateWithCompletion:^(BOOL changed, NSError * _Nullable error) {
//            NSLog(@"Config fetched. Activated.");
//            NSLog(@"Fetched and activated value for config - %d", [[[FIRRemoteConfig remoteConfig] configValueForKey:@"performance_test"] boolValue]);
//          }];
    });
  }];
  1. Stop the app, restart the app and ascertain that the value of the config is still false.
  2. Add new piece of code to activate the configs after 150 seconds of wait. Ascertain that value of the config is true.

Can you share the list of log messages on the console? Especially, I'm looking for config messages like [I-RCN000069] Most recently fetched config is already activated.

One more thing to confirm: Can you fetch the value of the remote config to see if they are activated (instead of checking on the state of changed)? This would help us identify if the issue is related to activation or managing the state of variable changed.

@google-oss-bot
Copy link

Hey @chwo. We need more information to resolve this issue but there hasn't been an update in 5 weekdays. I'm marking the issue as stale and if there are no new updates in the next 5 days I will close it automatically.

If you have more information that will help us get to the bottom of this, just add a comment!

@banjun
Copy link

banjun commented Jan 6, 2021

We have a similar issue and have inspected and found a basic concurrency issue in the firebase-ios-sdk source code.

firebase-ios-sdk uses 4 persistent stores below, for the issue:

  • sqlite main table (fetched values)
  • sqlite main_active table (activated values ... activate copies values from main table to main_active table)
  • sqlite metadata table lastApplyTimeInterval
  • UserDefaults lastETagUpdateTime

In the main table and the active table, RemoteConfig and Performance records are stored with a namespace prefix firebase and fireperf respectively. However lastETagUpdateTime and lastApplyTimeInterval are not prefixed by any namespace.

Thus lastETagUpdateTime and lastApplyTimeInterval are shared resources among RemoteConfig and Performance. RemoteConfig and Performance are individually read/write the shared resource and may cause the issue.

fetch updates lastETagUpdateTime. activate updates lastApplyTimeInterval. In this case I suspect that once RemoteConfig fetches the value and then before its activation Performance fetches and activates its values. After that situation is occurred, RemoteConfig cannot activate its fetched values due to I-RCN000069 as @visumickey mentioned, i.e. lastETagUpdateTime <= lastApplyTimeInterval, and callbacks with changed property is always false that is similar to what @chwo says.

@chwo
Copy link
Author

chwo commented Jan 6, 2021

@visumickey Thank you for looking into this.

I tried the code snippet you posted but unfortunately the issue exists there also: The fetch is successful but the value stays the same as before after the activation.

I get the following log messages on the console from our project setup:

fresh install first app launch

2021-01-06 20:44:14.852643+0100 WetterApp[5134:1325110]  - <AppMeasurement>[I-ACS036001] Analytics screen reporting is disabled. UIViewController transitions will not be logged.
2021-01-06 20:44:14.919862+0100 WetterApp[5134:1325110] 7.3.0 - [Firebase/Analytics][I-ACS025028] AdMob and Firebase are in use in this app, but are not linked. For analytics data consistency and integrity, it is highly recommended that you link your AdMob app to the corresponding Firebase app and re-download the GoogleServices-Info.plist file. See https://support.google.com/admob/answer/6383165 for more information.
2021-01-06 20:44:14.942128+0100 WetterApp[5134:1325110] 7.3.0 - [Firebase/Analytics][I-ACS023007] Analytics v.7.3.0 started
2021-01-06 20:44:14.942487+0100 WetterApp[5134:1325110] 7.3.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2021-01-06 20:44:14.950768+0100 WetterApp[5134:1324891] [Firebase/Crashlytics] Version 7.3.0
2021-01-06 20:44:15.010606+0100 WetterApp[5134:1325124] 7.3.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2021-01-06 20:44:15.061639+0100 WetterApp[5134:1325126] 7.3.0 - [Firebase/RemoteConfig][I-RCN000072] New config database created. Resetting user defaults.
2021-01-06 20:44:15.061992+0100 WetterApp[5134:1325126] 7.3.0 - [Firebase/RemoteConfig][I-RCN000072] New config database created. Resetting user defaults.
2021-01-06 20:44:22.772656+0100 WetterApp[5134:1324891] <Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ @"ea772de3d7a1c5d419a05f1c9965b6a5" ];
2021-01-06 20:44:22.779088+0100 WetterApp[5134:1325124] 7.3.0 - [Firebase/Analytics][I-ACS025026] Deferring to Firebase for event data collection
2021-01-06 20:44:23.286472+0100 WetterApp[5134:1325113] 7.3.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2021-01-06 20:44:23.331545+0100 WetterApp[5134:1325113] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
2021-01-06 20:44:23.332996+0100 WetterApp[5134:1325113] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled

second app launch

2021-01-06 20:50:06.230719+0100 WetterApp[5160:1327451]  - <AppMeasurement>[I-ACS036001] Analytics screen reporting is disabled. UIViewController transitions will not be logged.
2021-01-06 20:50:06.287933+0100 WetterApp[5160:1327451] 7.3.0 - [Firebase/Analytics][I-ACS025028] AdMob and Firebase are in use in this app, but are not linked. For analytics data consistency and integrity, it is highly recommended that you link your AdMob app to the corresponding Firebase app and re-download the GoogleServices-Info.plist file. See https://support.google.com/admob/answer/6383165 for more information.
2021-01-06 20:50:06.294346+0100 WetterApp[5160:1327214] [Firebase/Crashlytics] Version 7.3.0
2021-01-06 20:50:06.306013+0100 WetterApp[5160:1327461] 7.3.0 - [Firebase/Analytics][I-ACS023007] Analytics v.7.3.0 started
2021-01-06 20:50:06.306524+0100 WetterApp[5160:1327461] 7.3.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2021-01-06 20:50:06.316834+0100 WetterApp[5160:1327462] 7.3.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2021-01-06 20:50:21.746992+0100 WetterApp[5160:1327446] 7.3.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2021-01-06 20:50:21.765512+0100 WetterApp[5160:1327446] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
2021-01-06 20:50:21.768177+0100 WetterApp[5160:1327452] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
2021-01-06 20:50:24.415406+0100 WetterApp[5160:1327214] <Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ @"ea772de3d7a1c5d419a05f1c9965b6a5" ];
2021-01-06 20:50:24.433071+0100 WetterApp[5160:1327462] 7.3.0 - [Firebase/Analytics][I-ACS025026] Deferring to Firebase for event data collection

Additionally I get the following log messages from using your code snippet:

fresh install first app launch with your code snippet

2021-01-06 20:54:47.565945+0100 WetterApp[5187:1330346]  - <AppMeasurement>[I-ACS036001] Analytics screen reporting is disabled. UIViewController transitions will not be logged.
2021-01-06 20:54:47.629347+0100 WetterApp[5187:1330352] 7.3.0 - [Firebase/Analytics][I-ACS025028] AdMob and Firebase are in use in this app, but are not linked. For analytics data consistency and integrity, it is highly recommended that you link your AdMob app to the corresponding Firebase app and re-download the GoogleServices-Info.plist file. See https://support.google.com/admob/answer/6383165 for more information.
2021-01-06 20:54:47.655742+0100 WetterApp[5187:1330346] 7.3.0 - [Firebase/Analytics][I-ACS023007] Analytics v.7.3.0 started
2021-01-06 20:54:47.656818+0100 WetterApp[5187:1330346] 7.3.0 - [Firebase/Analytics][I-ACS023008] To enable debug logging set the following application argument: -FIRAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
2021-01-06 20:54:47.669912+0100 WetterApp[5187:1330360] 7.3.0 - [Firebase/Messaging][I-FCM001000] FIRMessaging Remote Notifications proxy enabled, will swizzle remote notification receiver handlers. If you'd prefer to manually integrate Firebase Messaging, add "FirebaseAppDelegateProxyEnabled" to your Info.plist, and set it to NO. Follow the instructions at:
https://firebase.google.com/docs/cloud-messaging/ios/client#method_swizzling_in_firebase_messaging
to ensure proper integration.
2021-01-06 20:54:47.671763+0100 WetterApp[5187:1330122] [Firebase/Crashlytics] Version 7.3.0
2021-01-06 20:54:47.747693+0100 WetterApp[5187:1330346] 7.3.0 - [Firebase/RemoteConfig][I-RCN000072] New config database created. Resetting user defaults.
2021-01-06 20:54:47.748546+0100 WetterApp[5187:1330346] 7.3.0 - [Firebase/RemoteConfig][I-RCN000072] New config database created. Resetting user defaults.
2021-01-06 20:54:47.936962+0100 WetterApp[5187:1330122] <Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ @"ea772de3d7a1c5d419a05f1c9965b6a5" ];
2021-01-06 20:54:48.010496+0100 WetterApp[5187:1330346] 7.3.0 - [Firebase/Analytics][I-ACS025026] Deferring to Firebase for event data collection
2021-01-06 20:54:48.476400+0100 WetterApp[5187:1330359] 7.3.0 - [Firebase/Analytics][I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
2021-01-06 20:54:48.530471+0100 WetterApp[5187:1330359] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
2021-01-06 20:54:48.532087+0100 WetterApp[5187:1330367] 7.3.0 - [Firebase/Analytics][I-ACS023012] Analytics collection enabled
Config fetched. Not activated.
Fetched value for config - 0
Value of remote config after 150 seconds without app activation - 0
Config fetched. Activated.
Fetched and activated value for config - 0

As described the changed property in the activateWithCompletion completion handler is always false. And calling config.allKeys(from: .remote) inside this completion handler always returns 0. So from my perspective it seems that the activateWithCompletion completion handler cannot access the fetched values.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging a pull request may close this issue.

8 participants