Catch up on everthing we announced at this year's Firebase Summit. Learn more

Inizia con Firebase Remote Config

Puoi utilizzare Firebase Remote Config per definire i parametri nella tua app e aggiornarne i valori nel cloud, consentendoti di modificare l'aspetto e il comportamento della tua app senza distribuire un aggiornamento dell'app. Questa guida ti guida attraverso i passi per iniziare e fornisce alcuni esempi di codice, ognuno dei quali è disponibile per clonare o il download dal Firebase / quickstart-Android GitHub repository.

Aggiungi Firebase e Remote Config SDK alla tua app

  1. Se non l'hai già, aggiungi Firebase al progetto Android .

  2. Per Configurazione remota, Google Analytics è richiesto per il Targeting condizionale di istanze di app per proprietà utente, il pubblico, e le previsioni Firebase. Assicurarsi che si abiliti Google Analytics nel progetto.

  3. Utilizzando la Firebase Android BoM , dichiarare la dipendenza per la libreria Config Android remoto del modulo (a livello di app) File Gradle (di solito app/build.gradle ).

    Inoltre, come parte della configurazione di Analytics, devi aggiungere l'SDK Firebase per Google Analytics alla tua app.

    Giava

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config'
        implementation 'com.google.firebase:firebase-analytics'
    }
    

    Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

    (Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

    Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.

    Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono compatibili.

    dependencies {
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config:21.0.1'
        implementation 'com.google.firebase:firebase-analytics:20.0.0'
    }
    

    Kotlin+KTX

    dependencies {
        // Import the BoM for the Firebase platform
        implementation platform('com.google.firebase:firebase-bom:29.0.1')
    
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When using the BoM, you don't specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config-ktx'
        implementation 'com.google.firebase:firebase-analytics-ktx'
    }
    

    Usando il Firebase Android BoM , la vostra applicazione sarà sempre utilizzare versioni compatibili delle librerie Firebase Android.

    (Alternativa) Dichiarare Firebase dipendenze delle librerie senza utilizzare la distinta

    Se scegli di non utilizzare Firebase BoM, devi specificare ogni versione della libreria Firebase nella relativa riga di dipendenza.

    Si noti che se si utilizzano più librerie Firebase nella vostra app, ti consigliamo di utilizzare la distinta di gestire versioni della libreria, che assicura che tutte le versioni sono compatibili.

    dependencies {
        // Declare the dependencies for the Remote Config and Analytics libraries
        // When NOT using the BoM, you must specify versions in Firebase library dependencies
        implementation 'com.google.firebase:firebase-config-ktx:21.0.1'
        implementation 'com.google.firebase:firebase-analytics-ktx:20.0.0'
    }
    

Ottieni l'oggetto singleton Remote Config

Ottieni un'istanza dell'oggetto Remote Config e imposta l'intervallo di recupero minimo per consentire aggiornamenti frequenti:

Giava

mFirebaseRemoteConfig = FirebaseRemoteConfig.getInstance();
FirebaseRemoteConfigSettings configSettings = new FirebaseRemoteConfigSettings.Builder()
        .setMinimumFetchIntervalInSeconds(3600)
        .build();
mFirebaseRemoteConfig.setConfigSettingsAsync(configSettings);

Kotlin+KTX

remoteConfig = Firebase.remoteConfig
val configSettings = remoteConfigSettings {
    minimumFetchIntervalInSeconds = 3600
}
remoteConfig.setConfigSettingsAsync(configSettings)

L'oggetto singleton viene utilizzato per archiviare i valori dei parametri predefiniti in-app, recuperare i valori dei parametri aggiornati dal back-end e controllare quando i valori recuperati sono resi disponibili per la tua app.

Durante lo sviluppo, si consiglia di impostare un intervallo di recupero minimo relativamente basso. Vedere Throttling per ulteriori informazioni.

Imposta i valori dei parametri predefiniti in-app

È possibile impostare i valori dei parametri predefiniti in-app nell'oggetto Remote Config, in modo che l'app si comporti come previsto prima di connettersi al back-end di Remote Config e in modo che i valori predefiniti siano disponibili se non sono impostati nel back-end.

  1. Definire un insieme di nomi di parametro ei valori dei parametri predefiniti utilizzando un mappa oggetto o un file di risorse XML memorizzato nella vostra applicazione del res/xml cartella. La configurazione remota QuickStart usi app di esempio un file XML per definire i nomi di default dei parametri e valori.
  2. Aggiungere questi valori per l'oggetto Configurazione remota utilizzando setDefaultsAsync(int) , come indicato:

Giava

mFirebaseRemoteConfig.setDefaultsAsync(R.xml.remote_config_defaults);

Kotlin+KTX

remoteConfig.setDefaultsAsync(R.xml.remote_config_defaults)

Ottieni i valori dei parametri da utilizzare nella tua app

Ora puoi ottenere i valori dei parametri dall'oggetto Remote Config. Se imposti i valori nel back-end, li recuperi e quindi li attivi, quei valori sono disponibili per la tua app. In caso contrario, si ottengono i valori dei parametri in-app configurate utilizzando setDefaultsAsync(int) . Per ottenere questi valori, chiama il metodo elencato di seguito che esegue il mapping al tipo di dati previsto dalla tua app, fornendo la chiave del parametro come argomento:

Imposta i valori dei parametri nel backend di Remote Config

Utilizzando la console Firebase o le API di back-end di configurazione remoto , è possibile creare nuovi valori di default sul lato server che sostituiscono i valori in-app in base alle proprie logica condizionale desiderato o targeting degli utenti. Questa sezione descrive i passaggi della console Firebase per creare questi valori.

  1. Nella console Firebase , aprire il progetto.
  2. Selezionare Configurazione remota dal menu per visualizzare il cruscotto Configurazione remota.
  3. Definisci i parametri con gli stessi nomi dei parametri che hai definito nella tua app. Per ogni parametro, puoi impostare un valore predefinito (che alla fine sovrascriverà il valore predefinito in-app corrispondente) e puoi anche impostare valori condizionali. Per ulteriori informazioni, consultare Remote Config parametri e condizioni .

Recupera e attiva i valori

  1. Per recuperare i valori dei parametri dal backend Configurazione remota, chiama il fetch() metodo. Tutti i valori impostati nel back-end vengono recuperati e archiviati nell'oggetto Remote Config.
  2. Per rendere i valori dei parametri recuperati a disposizione per la vostra applicazione, chiamare activate() metodo.

    Per i casi in cui si desidera recuperare e attivare i valori in una chiamata, è possibile utilizzare un fetchAndActivate() richiesta per recuperare i valori dal backend Configurazione remota e renderli disponibili per l'applicazione:

    Giava

    mFirebaseRemoteConfig.fetchAndActivate()
            .addOnCompleteListener(this, new OnCompleteListener<Boolean>() {
                @Override
                public void onComplete(@NonNull Task<Boolean> task) {
                    if (task.isSuccessful()) {
                        boolean updated = task.getResult();
                        Log.d(TAG, "Config params updated: " + updated);
                        Toast.makeText(MainActivity.this, "Fetch and activate succeeded",
                                Toast.LENGTH_SHORT).show();
    
                    } else {
                        Toast.makeText(MainActivity.this, "Fetch failed",
                                Toast.LENGTH_SHORT).show();
                    }
                    displayWelcomeMessage();
                }
            });

    Kotlin+KTX

    remoteConfig.fetchAndActivate()
            .addOnCompleteListener(this) { task ->
                if (task.isSuccessful) {
                    val updated = task.result
                    Log.d(TAG, "Config params updated: $updated")
                    Toast.makeText(this, "Fetch and activate succeeded",
                            Toast.LENGTH_SHORT).show()
                } else {
                    Toast.makeText(this, "Fetch failed",
                            Toast.LENGTH_SHORT).show()
                }
                displayWelcomeMessage()
            }

Poiché questi valori dei parametri aggiornati influiscono sul comportamento e sull'aspetto della tua app, dovresti attivare i valori recuperati in un momento che garantisca un'esperienza fluida per il tuo utente, ad esempio la prossima volta che l'utente apre la tua app. Vedere le strategie di carico di configurazione remota per ulteriori informazioni ed esempi.

Limitazione

Se un'applicazione recupera troppe volte in un breve periodo di tempo, prendere le chiamate vengono strozzati e l'SDK ritorna FirebaseRemoteConfigFetchThrottledException . Prima della versione 17.0.0 dell'SDK, il limite era di 5 richieste di recupero in una finestra di 60 minuti (le versioni più recenti hanno limiti più permissivi).

Durante lo sviluppo dell'app, potresti voler recuperare e attivare le configurazioni molto frequentemente (più volte all'ora) per consentirti di eseguire rapidamente l'iterazione mentre sviluppi e testa la tua app. Per ospitare iterazione rapida su un progetto con un massimo di 10 sviluppatori, è possibile impostare temporaneamente un FirebaseRemoteConfigSettings oggetto con un minimo basso prendere intervallo ( setMinimumFetchIntervalInSeconds ) nella vostra applicazione.

L'intervallo di recupero minimo predefinito per Remote Config è 12 ore, il che significa che le configurazioni non verranno recuperate dal back-end più di una volta in una finestra di 12 ore, indipendentemente dal numero di chiamate di recupero effettivamente effettuate. In particolare, l'intervallo di recupero minimo è determinato nel seguente ordine:

  1. Il parametro a fetch(long)
  2. Il parametro a FirebaseRemoteConfigSettings.setMinimumFetchIntervalInSeconds(long)
  3. Il valore predefinito di 12 ore

Per impostare il minimo recuperare intervallo di un valore personalizzato, utilizzare FirebaseRemoteConfigSettings.Builder.setMinimumFetchIntervalInSeconds(long) .

Prossimi passi

Se non l'hai già, esplorare le Configurazione remota casi d'uso , e dare un'occhiata ad alcuni dei concetti chiave e avanzati documentazione strategie, tra cui: