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

Parametri e condizioni di configurazione remota

Quando si utilizza Firebase console o le API di back-end Configurazione remota , è necessario definire uno o più parametri (coppie chiave-valore) e fornire i valori di default in-app per tali parametri. Puoi sovrascrivere i valori predefiniti in-app definendo i valori dei parametri lato server. Le chiavi e i valori dei parametri sono stringhe, ma è possibile eseguire il cast dei valori dei parametri come altri tipi di dati quando si utilizzano questi valori nell'app.

Utilizzando la console Firebase o il Remote API REST Config , è possibile creare nuovi valori predefiniti per i parametri, così come i valori condizionali che vengono utilizzati per gruppi di destinatari di istanze di app. Ogni volta che aggiorni la configurazione nella console Firebase, Firebase crea e pubblica una nuova versione del modello di configurazione remota. La versione precedente viene archiviata, consentendoti di recuperare o eseguire il rollback secondo necessità. Queste operazioni sono disponibili anche tramite l'API REST.

Questa guida spiega parametri, condizioni, regole, valori condizionali e come viene assegnata la priorità ai vari valori dei parametri nel server di configurazione remota e nella tua app. Fornisce inoltre dettagli sui tipi di regole utilizzate per creare condizioni.

Condizioni, regole e valori condizionali

Una condizione viene utilizzata per scegliere come target un gruppo di istanze dell'app. Le condizioni sono costituiti da una o più regole che devono tutti restituiscono true per la condizione di valutare al true per una determinata istanza app. Se non è definito il valore di una regola (ad esempio, quando nessun valore è disponibile), che regola valuterà al false .

Ad esempio, un parametro che definisce splash page di un app potrebbe visualizzare immagini diverse in base al tipo di sistema operativo utilizzando la semplice regola if device_os = Android :

Cattura dello schermo del parametro "splash_page" nella console Firebase che mostra il suo valore predefinito per iOS e il valore condizionale per Android

Oppure, una condizione di tempo potrebbe essere utilizzato per controllare quando i display app articoli promozionali speciali.

Un parametro può avere più valori condizionali che usano condizioni diverse e i parametri possono condividere condizioni all'interno di un progetto. Nella scheda Parametri della console Firebase, è possibile visualizzare la percentuale di recupero per i valori condizionali di ogni parametro. Questa metrica indica la percentuale di richieste nelle ultime 24 ore che hanno ricevuto ciascun valore.

Priorità valore parametro

Un parametro potrebbe avere diversi valori condizionali associati. Le regole seguenti determinano quale valore viene recuperato dal server di configurazione remota e quale valore viene utilizzato in una determinata istanza dell'app in un determinato momento:

I valori dei parametri lato server vengono recuperati in base al seguente elenco di priorità

  1. In primo luogo, i valori condizionali vengono applicate, se del caso sono le condizioni che restituiscono true per una determinata istanza app. Se più condizioni restituiscono true , la prima (superiore) quello mostrato nella Firebase console UI ha la precedenza, e valori condizionali associati a tale condizione sono fornite quando un'applicazione recupera i valori dal backend. È possibile modificare la priorità delle condizioni trascinando condizioni nella scheda Condizioni.

  2. Se non ci sono valori condizionali con condizioni che restituiscono true , il valore di default sul lato server viene fornito quando un app recupera i valori dal backend. Se un parametro non esiste nel backend, o se il valore di default è impostato per utilizzare in-app di default, quindi nessun valore è previsto per quel parametro, quando un app recupera i valori.

Nella vostra applicazione, i valori dei parametri vengono restituiti dal get metodi secondo la seguente lista di priorità

  1. Se un valore è stato recuperato dal back-end e quindi attivato, l'app utilizza il valore recuperato. I valori dei parametri attivati ​​sono persistenti.
  2. Se non è stato recuperato alcun valore dal back-end o se i valori recuperati dal back-end di Remote Config non sono stati attivati, l'app utilizza il valore predefinito in-app.
  3. Se nessun valore predefinito in-app è stato impostato, l'applicazione utilizza un valore di tipo statico (come ad esempio 0 per int e false per boolean ).

Questo grafico riassume come viene assegnata la priorità ai valori dei parametri nel backend di Remote Config e nella tua app:

Diagramma che mostra il flusso descritto dagli elenchi ordinati sopra

Tipi di dati del valore del parametro

Remote Config consente di selezionare un tipo di dati per ogni parametro e convalida tutti i valori lato server rispetto a quel tipo prima di un aggiornamento del modello. Il tipo di dati viene memorizzato ed è tornato su un getRemoteConfig richiesta.

I tipi attualmente supportati sono:

  • String
  • Boolean
  • Number
  • JSON

Nell'interfaccia utente della console Firebase è possibile selezionare il tipo di dati da un menu a discesa accanto alla chiave del parametro. Nel resto tipi API possono essere impostate utilizzando il value_type campo all'interno dell'oggetto parametro.

Gruppi di parametri

Remote Config consente di raggruppare i parametri per un'interfaccia utente e un modello mentale più organizzati.

Ad esempio, supponiamo che tu debba abilitare o disabilitare tre diversi tipi di autenticazione durante l'implementazione di una nuova funzionalità di accesso. Con Remote Config è possibile creare i tre parametri per abilitare i tipi come desiderato, quindi organizzarli in un gruppo denominato "Nuovo accesso", senza la necessità di aggiungere prefissi o ordinamenti speciali.

Puoi creare gruppi di parametri utilizzando la console Firebase o l'API REST di Remote Config. Ogni gruppo di parametri che crei ha un nome univoco nel modello di configurazione remota. Quando crei gruppi di parametri, tieni presente:

  • I parametri possono essere inclusi in un solo gruppo alla volta e una chiave di parametro deve comunque essere univoca per tutti i parametri.
  • I nomi dei gruppi di parametri sono limitati a 256 caratteri.
  • Se utilizzi sia l'API REST che la console Firebase, assicurati che la logica dell'API REST sia aggiornata per gestire i gruppi di parametri durante la pubblicazione.

Crea o modifica gruppi di parametri utilizzando la console Firebase

È possibile impostare i parametri del gruppo nel Parametri scheda della console Firebase. Per creare o modificare un gruppo:

  1. Selezionare Gestisci gruppi.
  2. Selezionare le caselle di controllo per i parametri che si desidera aggiungere e selezionare Sposta in gruppo.
  3. Selezionare un gruppo esistente, o di creare un nuovo gruppo inserendo un nome e una descrizione, e selezionando Crea nuovo gruppo. Dopo aver salvato un gruppo, è disponibile per essere pubblicato con il pulsante Pubblica modifiche.

Crea gruppi in modo programmatico

L' API REST Config remota fornisce un metodo automatico per creare e pubblicare gruppi di parametri. Supponendo che tu abbia familiarità con REST e sia impostato per autorizzare le richieste all'API, puoi eseguire questi passaggi per gestire i gruppi in modo programmatico:

  1. Recupera il modello corrente
  2. Aggiungi oggetti JSON per rappresentare i tuoi gruppi di parametri
  3. Pubblica i gruppi di parametri utilizzando una richiesta HTTP PUT.

Il parameterGroups oggetto contiene tasti di gruppo, con una descrizione annidata e lista di parametri raggruppati. Tieni presente che ogni chiave di gruppo deve essere univoca a livello globale.

Ad esempio, ecco un estratto da una revisione modello che aggiunge il gruppo di parametri "nuovo menu" con un parametro, pumpkin_spice_season :

{
  "parameters": {},
  "version": {
    "versionNumber": "1",

    …


  },
  "parameterGroups": {
    "new menu": {
      "description": "New Menu",
      "parameters": {
        "pumpkin_spice_season": {
          "defaultValue": {
            "value": "true"
          },
          "description": "Whether it's currently pumpkin spice season."
        }
      }
    }
  }
}

Tipi di regole condizionali

I seguenti tipi di regole sono supportati nella console Firebase. Funzionalità equivalente è disponibile nelle API REST Config remoto, come specificato nel riferimento espressione condizionale .

Tipo di regola Operatore/i Valori) Nota
App == Seleziona da un elenco di ID app per le app associate al tuo progetto Firebase. Quando si aggiunge un app per Firebase, si entra in un ID fascio o Android nome del pacchetto che definisce un attributo che è esposto come App ID nelle regole di configurazione remota.

Utilizzare questo attributo come segue:
  • Per le piattaforme Apple: L'utilizzo dell'app CFBundleIdentifier . È possibile trovare il Bundle Identifier nella scheda Generale per l'obiettivo primario della tua app in Xcode.
  • Per Android: Utilizzare l'app applicationID . È possibile trovare applicationId nel vostro livello di applicazione build.gradle file.
Versione dell'app Per i valori stringa:
corrisponde esattamente,
contiene,
non contiene,
espressione regolare

Per valori numerici:
=, ≠, >, ≥, <, ≤

Specifica le versioni della tua app di destinazione.

Prima di utilizzare questa regola, è necessario utilizzare una regola di App ID per selezionare un'applicazione Android / Apple ha associato con il progetto Firebase.

Per le piattaforme Apple: L'utilizzo dell'app CFBundleShortVersionString .

Nota: Assicurati che il tuo Apple App utilizza piattaforme Firebase SDK di Apple la versione 6.24.0 o superiore, come CFBundleShortVersionString non viene inviato nelle versioni precedenti (vedi note di rilascio ).

Per Android: Utilizzare l'app versionName .

I confronti di stringhe per questa regola fanno distinzione tra maiuscole e minuscole. Quando si utilizzano i esattamente partite, contiene, non contiene, o regolari operatore espressione, è possibile selezionare più valori.

Quando si utilizza l'operatore di espressione regolare, è possibile creare espressioni regolari in RE2 formato. La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. È inoltre possibile utilizzare le ^ e $ ancore per abbinare all'inizio, alla fine o totalità di una stringa di destinazione.

Numero di build Per i valori stringa:
corrisponde esattamente,
contiene,
non contiene,
espressione regolare

Per valori numerici:
=, ≠, >, ≥, <, ≤

Specifica le build della tua app di destinazione.

Prima di utilizzare questa regola, è necessario utilizzare una regola di App ID per selezionare un'applicazione Apple o Android associato con il progetto Firebase.

Questo operatore è disponibile solo per le app Apple e Android. Corrisponde alla app CFBundleVersion per Apple e versionCode per Android. I confronti di stringhe per questa regola fanno distinzione tra maiuscole e minuscole.

Quando si utilizzano i esattamente partite, contiene, non contiene, o regolari operatore espressione, è possibile selezionare più valori.

Quando si utilizza l'operatore di espressione regolare, è possibile creare espressioni regolari in RE2 formato. La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. È inoltre possibile utilizzare le ^ e $ ancore per abbinare all'inizio, alla fine o totalità di una stringa di destinazione.

piattaforma == iOS
Android
ragnatela
Sistema operativo ==

Specificare i sistemi operativi di destinazione.

Prima di utilizzare questa regola, è necessario utilizzare una regola di App ID per selezionare un'applicazione Web associata con il progetto Firebase.

Questa regola restituisce true per una determinata istanza di Web app se il sistema operativo e la versione corrisponde a quello specificato nella lista specificata.
Browser ==

Specificare i browser di destinazione.

Prima di utilizzare questa regola, è necessario utilizzare una regola di App ID per selezionare un'applicazione Web associata con il progetto Firebase.

Questa regola restituisce true per una determinata istanza Web App se il browser e la sua versione corrisponde a quello specificato nella lista specificata.
Appuntamento <=, > Una data e un'ora specificate, nel fuso orario del dispositivo o in un fuso orario specificato, ad esempio "(GMT+11) ora di Sydney". Confronta l'ora corrente con l'ora di recupero del dispositivo.
Utente in percentile casuale <=, > 0-100

Utilizzare questo campo per applicare una modifica a un campione casuale di istanze app (con dimensioni del campione più piccolo 0,0001%), con il <= e> gli operatori a segmentare gli utenti (istanze app) in gruppi.

Ogni istanza applicazione è costantemente associato ad un numero intero o frazionario casuale, secondo una chiave definita in tale progetto. Una regola utilizzerà il tasto predefinito (mostrato come DEF nella console Firebase) a meno che non si sceglie o si crea un altro tasto. È possibile tornare a una regola utilizzando la chiave predefinita deselezionando gli utenti Randomize utilizza questo campo chiave. Puoi utilizzare un'unica chiave tra le regole per indirizzare in modo coerente le stesse istanze dell'app all'interno di determinati intervalli percentuali. In alternativa, puoi selezionare un nuovo gruppo di istanze di app assegnato casualmente per un determinato intervallo di percentuali creando una nuova chiave.

Ad esempio, per creare due condizioni correlate che ogni applica ad una non sovrapposti 5% degli utenti di un'app, si potrebbe avere una condizione includono un <regola = 5%, e un'altra condizione includono sia a> regola del 5% e un <= regola del 10%. Per consentire ad alcuni utenti di apparire casualmente in entrambi i gruppi, utilizzare chiavi diverse per le regole in ciascuna condizione.

Utente nel pubblico == Seleziona uno o più da un elenco di segmenti di pubblico di Google Analytics che hai impostato per il tuo progetto.

Questa regola richiede una regola App ID per selezionare un'app associata al tuo progetto Firebase.

Nota: Poiché il pubblico molti Analytics sono definiti da eventi o proprietà degli utenti, che possono essere alla base delle azioni degli utenti di app, può richiedere un certo tempo per un utente in regola pubblico abbia effetto per una determinata istanza app.

Dispositivo in regione/paese == Seleziona una o più regioni o paesi. Questa regola restituisce true per una determinata istanza applicazione se l'istanza è in una delle regioni o paesi elencati. Il codice paese del dispositivo viene determinato utilizzando l'indirizzo IP del dispositivo nella richiesta o il codice paese determinato da Firebase Analytics (se i dati di Analytics sono condivisi con Firebase).
Lingua del dispositivo == Seleziona una o più lingue. Questa regola restituisce true per una determinata istanza applicazione se tale istanza app è installato su un dispositivo che utilizza una delle lingue elencate.
Proprietà dell'utente Per i valori stringa:
contiene,
non contiene,
corrisponde esattamente,
espressione regolare

Per valori numerici:
=, ≠, >, ≥, <, ≤

Nota: sul client è possibile impostare solo valori stringa per le proprietà utente. Per le condizioni che utilizzano operatori numerici, Remote Config converte il valore della proprietà utente corrispondente in un numero intero/float.
Seleziona da un elenco di proprietà utente di Google Analytics disponibili. Per sapere come è possibile utilizzare le proprietà all'utente di personalizzare la vostra applicazione per i segmenti molto specifici della vostra base di utenti, vedere Remote proprietà di configurazione e degli utenti .

Per ulteriori informazioni sulle proprietà utente, vedere le seguenti guide:

Quando si utilizzano i esattamente partite, contiene, non contiene o regolari operatore espressione, è possibile selezionare più valori.

Quando si utilizza l'operatore di espressione regolare, è possibile creare espressioni regolari in RE2 formato. La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. È inoltre possibile utilizzare le ^ e $ ancore per abbinare all'inizio, alla fine o totalità di una stringa di destinazione.

Nota: raccolti automaticamente proprietà utente non sono attualmente disponibili per la creazione di condizioni di Configurazione remota.
Segmento importato == Seleziona uno o più segmenti importati. Questa regola richiede la creazione personalizzata segmenti importati .
ID installazione == Specificare uno o più ID installazione (fino a 50) per la destinazione. Questa regola restituisce true per un determinato impianto se l'ID che di installazione è in elenco separato da virgole di valori.

Per sapere come è possibile ottenere gli ID di installazione, vedere Recupera identifers client .

Ricerca parametri e condizioni

È possibile cercare le chiavi del vostro progetto di parametri, i valori dei parametri, e le condizioni della console Firebase utilizzando la casella di ricerca nella parte superiore della scheda Config Parametri remoto.

Limiti su parametri e condizioni

All'interno di un progetto Firebase, puoi avere fino a 2000 parametri e fino a 500 condizioni. Le chiavi dei parametri possono avere una lunghezza massima di 256 caratteri, devono iniziare con un carattere di sottolineatura o lettera inglese (AZ, az) e possono anche includere numeri. La lunghezza totale delle stringhe dei valori dei parametri all'interno di un progetto non può superare 1.000.000 di caratteri.

Prossimi passi

Per iniziare la configurazione del progetto Firebase, vedere Impostare un Firebase Remote Config progetto .