2016-10-15 33 views
0

我正在製作演示項目,以使用Firebase Remote Config更改簡單TextView的顏色。但函數mRemoteConfig.fetch(cacheExpiration).addOnCompleteListener ...根本不會觸發。文字顏色不會更改。Firebase遠程配置獲取()根本不觸發

這裏是我的代碼:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    text = (TextView) findViewById(R.id.text); 
    initRemoteConfig(); 
} 


private void initRemoteConfig() { 
    mRemoteConfig = FirebaseRemoteConfig.getInstance(); 

    HashMap<String, Object> defaults = new HashMap<>(); 
    defaults.put("color_primary", getString(R.string.color_primary)); 

    mRemoteConfig.setDefaults(defaults); 
    FirebaseRemoteConfigSettings remoteConfigSettings = new FirebaseRemoteConfigSettings.Builder() 
      .setDeveloperModeEnabled(true) 
      .build(); 
    mRemoteConfig.setConfigSettings(remoteConfigSettings); 
    fetchRemoteConfigValues(); 
} 

private void fetchRemoteConfigValues() { 
    long cacheExpiration = 3600; 

    //expire the cache immediately for development mode. 
    if (mRemoteConfig.getInfo().getConfigSettings().isDeveloperModeEnabled()) { 
     cacheExpiration = 0; 
    } 

    mRemoteConfig.fetch(cacheExpiration) 
      .addOnCompleteListener(this, new OnCompleteListener<Void>() { 
       @Override 
       public void onComplete(Task<Void> task) { 
        if (task.isSuccessful()) { 
         // task successful. Activate the fetched data 
         mRemoteConfig.activateFetched(); 
         setupView(); 
        } else { 
         //task failed 
        } 
       } 
      }); 
} 

private void setupView() { 
    setTextColor(); 
} 

private void setTextColor() { 
    boolean isPromoOn = true; 
    int color = isPromoOn ? Color.parseColor(mRemoteConfig.getString("color_primary")) : 
      ContextCompat.getColor(this, R.color.color_primary); 

    text.setTextColor(color); 
} 

我這麼想嗎?感謝您的幫助:)

回答

0

如果您已經正確設置了Firebase控制檯,我建議您檢查最新的Google Play服務是否可以在您的手機上工作。