2017-03-21 32 views
1

我正在嘗試爲我的項目設置Firebase遠程配置。 我通過助手添加了Firebase。我的附加價值在谷歌雲端控制檯服務器值:Firebase遠程配置抓取不會從雲端更新值

1

我已經創建了一個資源的缺省值XML/XML

<defaultsMap> 

<!-- Strings--> 
<entry > 
    <key>textView_send_text</key> 
    <value >your phrase goes here.</value> 
</entry> 

</defaultsMap> 

這就是我的MainActivity:

final private FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); 

protected void onCreate(Bundle savedInstanceState) { 
    //..code.. 

    //fetch from Firebase 
    fetchAll(); 
} 

private void fetchAll(){ 
    final FirebaseRemoteConfig mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance(); 

    FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder() 
      .setDeveloperModeEnabled(BuildConfig.DEBUG) 
      .build(); 
    mFirebaseRemoteConfig.setConfigSettings(configSettings); 

    mFirebaseRemoteConfig.setDefaults(R.xml.defaults); 

    mFirebaseRemoteConfig.fetch() 
      .addOnCompleteListener(this, new OnCompleteListener<Void>() { 
       @Override 
       public void onComplete(@NonNull Task<Void> task) { 
        if(task.isSuccessful()){ 
         Toast.makeText(MainActivity.this, "Fetch Succeeded", 
           Toast.LENGTH_SHORT).show(); 

         mFirebaseRemoteConfig.activateFetched(); 
        }else{ 
         Toast.makeText(MainActivity.this, "Fetch Failed", 
           Toast.LENGTH_SHORT).show(); 
        } 

        displayWelcomeMessage(); 

       } 
      }); 





} 

private void displayWelcomeMessage(){ 
    String welcomeMessage = mFirebaseRemoteConfig.getString("textView_send_text"); 

    Toast.makeText(this, welcomeMessage, 
      Toast.LENGTH_SHORT).show(); 
} 

吐司輸出:

2

因此Toast從xml/defaults中獲取的值不是來自雲。 如果有人發現我犯了一個錯誤,我們將非常感激。

回答

9

開發測試,指定零的cache expiration time強制立即獲取:

mFirebaseRemoteConfig.fetch(0) // <- add the zero 
     .addOnCompleteListener(this, new OnCompleteListener<Void>() { 
      ... 
     }); 
+0

感謝。我會稍後再試,然後告訴你它是否有效 –

+0

不要這麼做,否則你會有例外。我推薦仿真器,以便在達到油門極限時切換幾次。 – j2emanue