web-dev-qa-db-ja.com

リリースにおけるFirebaseリモート構成キャッシュの有効期限

開発者モードをfalseに設定して、Firebaseリモート構成をリリースモードに設定しようとしています。しかし、キャッシュの有効期限が3000秒(少し短いかもしれませんが、実験的に判断すると)秒未満の場合、データのフェッチに失敗します。 FirebaseRemoteConfigFetchThrottledExceptionをスローします

_FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                        .setDeveloperModeEnabled(false)
                        .build();
_

.setDeveloperModeEnabled(true)を使用すると、0でもいつでも設定でき、うまく機能します。

ここに全体の塊があります:

_new Handler().postDelayed(new Runnable() {
        @Override
        public void run() {
            mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
            FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
                    .setDeveloperModeEnabled(false)
                    .build();

            mFirebaseRemoteConfig.setConfigSettings(configSettings);
            mFirebaseRemoteConfig.setDefaults(R.xml.remote_config_defaults);

            mFirebaseRemoteConfig.fetch(CACHE_EXPIRATION)
                    .addOnSuccessListener(new OnSuccessListener<Void>() {
                        @Override
                        public void onSuccess(Void aVoid) {
                            Log.i("info32", "remote config succeeded");
                            mFirebaseRemoteConfig.activateFetched();
                        }
                    })
                    .addOnFailureListener(new OnFailureListener() {
                        @Override
                        public void onFailure(@NonNull Exception exception) {
                            Log.i("info32", "remote config failed");
                        }
                    });
        }
    }, 0);
_

問題は何ですか?

12
YTerle

Remote Configはクライアント側のスロットリングを実装して、バグのあるクライアントや悪意のあるクライアントが高頻度のフェッチリクエストでFirebaseサーバーを爆破するのを防ぎます。 1人のユーザーが、制限は1時間あたり5つのリクエストであると報告しています。 5つの高速フェッチがスロットルをアクティブにすることを確認しましたが、どこにも記載されている制限は見つかりませんでした。

設定値のキャッシュについては ドキュメント で説明しています。スロットル制限のため、リリースされたアプリがRemote Config値の変更をすぐに確認することはできません。キャッシュされた値は、次のフェッチが許可されるまで使用されます。デフォルトのキャッシュの有効期限は12時間です。

18
Bob Snyder