【问题标题】:Handling Firebase Remote Config crashes处理 Firebase 远程配置崩溃
【发布时间】:2018-04-02 15:36:54
【问题描述】:

我在我的应用程序中使用 Firebase 远程配置已有一段时间了,但我注意到当从 Firebase 控制台推送错误数据并且应用程序崩溃时,即使在您执行此操作后,您也无法撤消对应用程序崩溃的影响已更正从 firebase 控制台发送的数据。除非您从手机清除应用缓存或重新安装,否则应用将在启动时崩溃。

请问有没有办法处理这个问题,因为如果有人错误地从 Firebase 控制台崩溃了他的应用程序,这将是一场彻底的毁灭性打击,用户可能不会再回到这个技术细节。

【问题讨论】:

  • 您在 Firebase 远程配置中存储了哪些类型的数据?它只是对还是错还是什么?
  • 我使用 firebase 远程配置来更改文本颜色、主工具栏颜色等。例如,我的设计是,远程配置获取一个 #fff,它会在 configuration_turns= 时覆盖文本的默认 #ffc000 true 否则当 configuration_turns=false 时保持默认值。当我错误地输入 4546 时,这是一个颜色错误(没有哈希值),应用程序崩溃,并且无法加载返回到有效值,除非我从设置中清除应用程序缓存或重新安装应用程序。

标签: android firebase firebase-remote-config


【解决方案1】:

除非您可以安排您的应用完成远程配置提取,然后应用这些更改,崩溃代码执行之前,如果不发布您的新版本,您真的无能为力可以防御来自远程配置的无效数据的应用程序。

您应该始终检查不良数据,即使它来自远程配置。因为人们确实会犯错误。

如果您将来担心这一点,也许您可​​以编写一些代码来发送云消息以告诉您的应用强制获取,然后立即应用更改,以便下次启动应用时,它可以在不受不良数据影响的情况下执行。

【讨论】:

  • 谢谢!我从来没有想过这两种方法,比如在接受配置之前检查错误数据以及更改我的应用程序开始的逻辑以覆盖这个崩溃错误。谢谢。
【解决方案2】:

我假设您正在使用 getString() 方法来获取颜色哈希码的值。由于远程配置中的键:值对是纯字符串,我们无法理解键中的正确值是什么。 #ffffff 正确还是 12345 正确。

在获取重要的业务关键值时,请在使用代码库中的值之前对其进行处理以进行验证。

也就是说,将数据类型引入远程配置是我们的路线图。它仍然不会阻止你犯上面提到的错误。

谢谢

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多