延迟应用程序启动,直到 RemoteConfig returns 值
Delay app start until RemoteConfig returns valus
我已经在我的应用程序中成功实现了 RemoteConfig。使用 fetchWithCompletionHandler: 从 Firebase 服务器检索值。
但是,一些 RemoteConfig 参数是应用程序启动所必需的,我无法为它们提供有意义的默认值(使用 setDefaults)。
所以我的想法是阻止应用程序启动,直到 fetchWithCompletion
处理程序 return 编辑了值(我可以异步执行此操作,同时向用户呈现一个漂亮的微调器)。
不过,我很疑惑,请问fetchWithCompletion
return 的值会立即出现吗?
还是用户需要等待很长时间才能加载值?
它不会总是立即 return 值 -- 请记住,您正在进行网络调用以从服务器获取这些值。大多数时候,此调用速度非常快,但根据您当时用户的网络,可能需要很长时间,而且我相信此调用的默认超时时间很长——大约 30 秒。
如果您确实想在 运行 之前阻止您的应用程序,直到此调用完成,我建议添加一个加载屏幕(这样您的用户就知道它不会被冻结,以防调用确实需要几秒钟) ,并实施您自己的超时时间,该超时时间比默认时间短一点。
您可能要考虑的另一个选项是 "Load up values for next time" 方法,您可以立即调用 activateFetched
(这将激活您可能在之前的会话中下载的任何值),然后开始一个新的获取下次可以加载的值。如果您有兴趣,可以了解更多相关信息 here。这意味着您的用户的第一个会话必须使用默认值,但是,这听起来可能不适用于您的应用。
我已经在我的应用程序中成功实现了 RemoteConfig。使用 fetchWithCompletionHandler: 从 Firebase 服务器检索值。
但是,一些 RemoteConfig 参数是应用程序启动所必需的,我无法为它们提供有意义的默认值(使用 setDefaults)。
所以我的想法是阻止应用程序启动,直到 fetchWithCompletion
处理程序 return 编辑了值(我可以异步执行此操作,同时向用户呈现一个漂亮的微调器)。
不过,我很疑惑,请问fetchWithCompletion
return 的值会立即出现吗?
还是用户需要等待很长时间才能加载值?
它不会总是立即 return 值 -- 请记住,您正在进行网络调用以从服务器获取这些值。大多数时候,此调用速度非常快,但根据您当时用户的网络,可能需要很长时间,而且我相信此调用的默认超时时间很长——大约 30 秒。
如果您确实想在 运行 之前阻止您的应用程序,直到此调用完成,我建议添加一个加载屏幕(这样您的用户就知道它不会被冻结,以防调用确实需要几秒钟) ,并实施您自己的超时时间,该超时时间比默认时间短一点。
您可能要考虑的另一个选项是 "Load up values for next time" 方法,您可以立即调用 activateFetched
(这将激活您可能在之前的会话中下载的任何值),然后开始一个新的获取下次可以加载的值。如果您有兴趣,可以了解更多相关信息 here。这意味着您的用户的第一个会话必须使用默认值,但是,这听起来可能不适用于您的应用。