如何计算Firebase远程配置速率限制?

alv*_*lca 5 android firebase firebase-remote-config

我正在使用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
                }

            }
        });
    }
Run Code Online (Sandbox Code Playgroud)

这非常重要,因为没有这个键我的应用程序无法正常工作.我需要知道是否可以达到限制异常条件.

你知道怎么算上限吗?

谢谢.

Bob*_*der 11

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

当您考虑FirebaseRemoteConfig的预期应用程序时,如果应用程序的所有实例的提取仅限于少数,例如5,则无法工作.

在您的帖子中,您使用了术语"用户".请注意,FirebaseRemoteConfig不需要登录用户,也不提供任何基于特定用户ID提供配置参数的功能,就像应用程序版本,设备语言或国家/地区一样.

因为您正在考虑使用"远程配置"来"存储密钥",所以您应该在文档中注意此警告:

请勿将机密数据存储在Remote Config参数键或参数值中.可以解码存储在项目的"远程配置"设置中的任何参数键或值.


mav*_*oid 5

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