【问题标题】:How is the Firebase Remote Config rate limit counted?Firebase 远程配置速率限制是如何计算的?
【发布时间】:2016-06-19 19:00:03
【问题描述】:

我正在使用 Firebase 远程配置来存储移动应用的密钥(由于安全问题,我不想包含在客户端应用中)。

问题是我知道在短时间内从服务器获取配置多次会引发限制异常。在生产应用程序中,每小时限制为 5 个请求,但我不知道此限制是按用户计数还是全局计数。

这是我的代码:

//first search cached result, if present
    String key = FirebaseRemoteConfig.getInstance().getString("key");
    if(key != null && !key.isEmpty()){
        setKeyAndGoHome(key);
    }else {
        //no key present, let's fetch it from config
        FirebaseRemoteConfig.getInstance().fetch().addOnCompleteListener(new OnCompleteListener<Void>() {
            @Override
            public void onComplete(@NonNull Task<Void> task) {
                if(task.isSuccessful()){
                    FirebaseRemoteConfig.getInstance().activateFetched();
                    //key is cached 12 hours
                    String key = FirebaseRemoteConfig.getInstance().getString("key");
                    setKeyAndGoHome(key); 
                } else {
                    //this can happen due to a throttling exception
                }

            }
        });
    }

这非常重要,因为没有这个键我的应用程序将无法运行。我需要知道是否可以达到节流异常条件。

你知道限额是怎么计算的吗?

谢谢。

【问题讨论】:

标签: android firebase firebase-remote-config


【解决方案1】:

为每个应用实例维护计数。换句话说,对于运行您的应用程序的每台设备。我通过在一台设备上重复运行类似于您的代码来确认这一点,直到获取状态为 LAST_FETCH_STATUS_THROTTLED。然后我在另一台设备上运行相同的应用程序,并成功获取。

当您考虑 FirebaseRemoteConfig 的预期应用程序时,如果应用程序的所有实例的提取次数都被限制在一个很小的数字(例如 5)内,它就无法工作。

在您的帖子中,您使用了“用户”一词。请注意,FirebaseRemoteConfig 不需要登录用户,并且不提供任何基于特定用户 ID 提供配置参数的功能,就像应用版本、设备语言或国家/地区等其他内容一样。

因为您正在考虑使用远程配置“存储密钥”,所以您应该注意documentation 中的此警告:

不要将机密数据存储在远程配置参数键或 参数值。可以解码任何参数键或 存储在项目的远程配置设置中的值。

【讨论】:

  • 非常感谢@qbix。我没有阅读那部分文档,所以我绝对不会使用 Remote Config 来存储密钥。
  • 如果您不在 xml 中存储默认配置,是否仍然存在安全风险?
  • @BabalolaTiwa:Firebase Support 最好回答。
  • 如果你被限制了,它会同时返回缓存的结果吗?
【解决方案2】:

按每个设备每个应用实例每小时 5 次计算。如果您清除应用程序的数据,此限制将被重置。您可以从 03:50 秒开始观看 Firebase 远程配置产品经理的此视频,了解有关此问题的更多信息 - https://www.youtube.com/watch?v=Vn8X-KQsb6w&t=230s

【讨论】:

  • 您好,视频分享很棒。它解决了一些问题,但似乎与文档/其他视频的某些部分相矛盾。具体来说,您是否知道我在哪里可以找到更多关于服务端限制的文档,如文档底部所述:firebase.google.com/docs/remote-config/use-config-android
  • 我猜这将与 FCM 服务限制相同,因为远程配置更改像 FCM 消息一样被推送。
  • 如果您想维护更动态的数据,那么您可能应该使用 Firebase 实时数据库...
猜你喜欢
  • 2013-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多