2016-07-28 19 views
5

Ich versuche, die Firebase-Remote-Konfiguration für den Freigabemodus einzurichten, indem ich den Entwicklermodus auf false setze. Aber mit Cache-Verfallszeit von weniger als 3000 (vielleicht ein bisschen weniger, experimentell bestimmt) Sekunden, es ist nicht möglich, Daten zu holen. Es wirft FirebaseRemoteConfigFetchThrottledExceptionAblaufzeit der Firebase-Remote-Konfigurationscache in Version

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

Und mit .setDeveloperModeEnabled(true) es ermöglicht mir jederzeit gesetzt werden, auch 0 und funktioniert gut.

Hier ist ganz großes Stück:

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); 

Könnten Sie bitte erklären, was das Problem ist?

Antwort

10

Remote Config implementiert die clientseitige Drosselung, um zu verhindern, dass fehlerhafte oder bösartige Clients die Firebase-Server mit Hochfrequenz-Abrufanforderungen überlasten. Ein Benutzer hat angegeben, dass das Limit fünf Anfragen pro Stunde beträgt. Ich habe das Limit nirgendwo dokumentiert, obwohl ich bestätigt habe, dass fünf schnelle Abrufe die Drosselung aktivieren.

Das Zwischenspeichern von Konfigurationswerten wird unter the documentation erläutert. Aufgrund der Einschränkungslimits ist es für Ihre freigegebene App nicht möglich, Änderungen an Remote Config-Werten sofort zu sehen. Zwischengespeicherte Werte werden verwendet, bis der nächste Abruf zulässig ist. Das Standard-Cache-Ablaufdatum beträgt 12 Stunden.