延迟应用程序启动,直到RemoteConfig返回valus



我已经在我的应用程序中成功地实现了RemoteConfig。使用fetchWithCompletionHandler:从Firebase服务器检索值。

然而,一些RemoteConfig参数是启动应用程序所必需的,我不能给它们完整的默认值(使用setDefaults(。

因此,我的想法是阻止应用程序启动,直到fetchWithCompletion处理程序返回值为止(我可以异步执行此操作,同时向用户提供一个漂亮的微调器(。

但是,我想知道fetchWithCompletion会立即返回值吗?或者,用户将不得不等待很长时间才能加载值?

它不会总是立即返回值——记住,您正在进行网络调用以从服务器获取这些值。大多数时候,这个呼叫很快,但根据用户当时的网络,它可能需要很长时间,我相信这个呼叫的默认超时时间很长,大约是30秒。

如果你确实想阻止你的应用程序运行,直到这个调用完成,我建议你添加一个加载屏幕(这样你的用户就知道它不会被冻结,以防调用需要几秒钟(,并实现比默认时间短一点的自己的超时。

您可能需要考虑的另一个选项是"为下次加载值"方法,即立即调用activateFetched(这将激活您可能在上一个会话中下载的任何值(,然后为下次可以加载的值启动新的提取。如果你感兴趣的话,这里还有更多关于它的信息。这意味着你的用户的第一个会话必须使用默认值,但听起来这可能不是你的应用程序的选项。

最新更新