プロジェクトにFirebase Remote Configを設定しようとしています。アシスタントを介してFirebaseを追加しました。 Google Cloud Consoleでサーバーの値に値を追加しました。
Res/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();
}
トースト出力:
したがって、Toastはクラウドからではなくxml/defaultsから値を取得します。私が間違いを犯した場所を誰かが見つけたとしたら、それは非常にありがたいことです。
開発テストでは、 キャッシュの有効期限 を0に指定して、即時フェッチを強制します。
mFirebaseRemoteConfig.fetch(0) // <- add the zero
.addOnCompleteListener(this, new OnCompleteListener<Void>() {
...
});
いくつかのヒントが私を助けました:
"publish changes"
_をクリックすることを忘れないでください。mFirebaseRemoteConfig.fetch(0)
を使用します何を試してもFirebaseのリモート構成がダウンロードされていないことがわかりました。通常、プロキシ(Charles Proxyなど)に接続しているときにデバッグを行っているため、Firebaseクラウドの更新が中断されていました。
プロキシされていないwifi接続に接続したら、アップデートを取得しました。
より頻繁に値を更新するデバッグビルドを実行する場合は、設定を開発者モードに設定することもできますが、プロキシが根本的な問題でした。
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
.setDeveloperModeEnabled(BuildConfig.DEBUG)
.build();