2

似乎 Firebase 中的所有示例都建议在didFinishLaunching. 这看起来是个好主意,但我发现它有问题。当我在模拟器中运行此设置时,第一次获取时会使用控制台中设置的默认值。看起来很合理,但问题是我有一个正在运行的 A/B 测试实验——实际上,其中有几个。而且我确实看到,在第二次发布时,我从这些实验中获得了新的价值。

这些实验针对我的应用程序的所有用户,让我担心的是,从第一次启动开始,我就没有收到这些值。在现实世界中,Firebase 会将获取的值缓存 12 小时。但是,由于文档没有提及在我的实验中何时将用户计入特定变体,我担心在这 12 小时内,我的一些用户将归因于非默认修改,即使他们的应用程序不知道他们应该获得非默认体验。

我遇到的另一个问题是,要执行 Remote Config fetch didFinishLaunching,需要终止应用程序。如果我的用户经常使用它并且系统没有杀死它怎么办?这意味着他们可能永远不会收到更新的配置值。

我的问题归结为这些:

  1. 重新加载远程配置不是更好didBecomeActive吗?
  2. Firebase 何时将用户归因于我的 A/B 测试中的特定变体?它是在应用程序生命周期的某个时刻静默发生,还是他们确保它仅在我的用户收到相应的远程配置值时发生?这可能是一个愚蠢的问题,因为应该很明显,只有当用户收到新值时才应该被计算在内,但文档没有提到这一点。
  3. 考虑到所有正在进行的 A/B 测试实验,有没有办法重新加载远程配置并确信我收到了最新值?想象一下,如果我想运行一个测试来确定我的应用内购买的理想价格点。在获取我的应用内产品之前,我想重新加载远程配置并加载所有最新值。我不想在第一次启动时收到默认值,向用户展示我的商店屏幕,价格水平较低,只是在第二次启动时加载更昂贵的版本,当新值从远程配置到达时。
4

1 回答 1

0

这一切都取决于您的 A/B 测试标准。在满足所有测试要求之前,用户将无法接收 A/B 变体。您可以在您知道用户将满足这些要求的应用程序中重新获取这些值。

您可以使用 DebugView 查看是否为用户激活了特定的 A/B 测试。

于 2020-07-29T21:15:31.947 回答