Parametri e condizioni di configurazione remota

Quando utilizzi la console Firebase o le API di backend Remote Config , definisci uno o più parametri (coppie chiave-valore) e fornisci valori predefiniti in-app per tali parametri. Puoi sostituire i valori predefiniti in-app definendo i valori dei parametri lato server. Le chiavi e i valori dei parametri sono stringhe, ma i valori dei parametri possono essere espressi come altri tipi di dati quando utilizzi questi valori nella tua app.

Utilizzando la console Firebase, l'SDK Admin o l' API REST Remote Config , puoi creare nuovi valori predefiniti per i tuoi parametri, nonché valori condizionali utilizzati per indirizzare gruppi di istanze dell'app. Ogni volta che aggiorni la configurazione nella console Firebase, Firebase crea e pubblica una nuova versione del modello Remote Config. La versione precedente viene archiviata, consentendoti di recuperarla o ripristinarla secondo necessità. Queste operazioni sono disponibili tramite la console Firebase, l'SDK Admin Firebase e l'API REST e sono descritte in modo più approfondito in Gestisci le versioni dei modelli Remote Config .

Questa guida spiega i parametri, le condizioni, le regole, i valori condizionali e il modo in cui viene assegnata la priorità ai vari valori dei parametri sul Remote Config Server e nella tua app. Fornisce inoltre dettagli sui tipi di regole utilizzate per creare le condizioni.

Condizioni, regole e valori condizionali

Una condizione viene utilizzata per indirizzare un gruppo di istanze dell'app. Le condizioni sono costituite da una o più regole che devono essere tutte valutate come true affinché la condizione valga come true per una determinata istanza dell'app. Se il valore di una regola non è definito (ad esempio, quando non è disponibile alcun valore), tale regola verrà valutata false .

Ad esempio, un parametro che definisce la pagina iniziale 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

In alternativa, è possibile utilizzare una condizione temporale per controllare quando la tua app visualizza articoli promozionali speciali.

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

Priorità del valore del parametro

A un parametro potrebbero essere associati diversi valori condizionali. Le seguenti regole determinano quale valore viene recuperato dal Remote Config Server e quale valore viene utilizzato in una determinata istanza dell'app in un particolare momento:

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

  1. Innanzitutto, vengono applicati i valori condizionali, se presenti condizioni che restituiscono true per una determinata istanza dell'app. Se più condizioni restituiscono true , la prima (quella in alto) mostrata nell'interfaccia utente della console Firebase ha la precedenza e i valori condizionali associati a tale condizione vengono forniti quando un'app recupera valori dal back-end. Puoi modificare la priorità delle condizioni trascinando e rilasciando le condizioni nella scheda Condizioni .

  2. Se non sono presenti valori condizionali con condizioni che restituiscono true , il valore predefinito lato server viene fornito quando un'app recupera valori dal back-end. Se un parametro non esiste nel back-end o se il valore predefinito è impostato su Utilizza impostazione predefinita in-app , non viene fornito alcun valore per tale parametro quando un'app recupera valori.

Nella tua app, i valori dei parametri vengono restituiti dai metodi get in base al seguente elenco di priorità

  1. Se un valore è stato recuperato dal backend e quindi attivato, l'app utilizza il valore recuperato. I valori dei parametri attivati ​​sono persistenti.
  2. Se non è stato recuperato alcun valore dal backend o se i valori recuperati dal backend Remote Config non sono stati attivati, l'app utilizza il valore predefinito in-app.

    Per ulteriori informazioni su come ottenere e impostare i valori predefiniti, vedere Scaricare le impostazioni predefinite del modello Remote Config .

  3. Se non è stato impostato alcun valore predefinito in-app, l'app utilizza un valore di tipo statico (ad esempio 0 per int e false per boolean ).

Questo grafico riassume la priorità dei valori dei parametri nel backend 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 ciascun parametro e convalida tutti i valori lato server rispetto a quel tipo prima di un aggiornamento del modello. Il tipo di dati viene archiviato e restituito su una richiesta getRemoteConfig .

I tipi attualmente supportati sono:

  • String
  • Boolean
  • Number
  • JSON

Nell'interfaccia utente della console Firebase il tipo di dati può essere selezionato da un menu a discesa accanto alla chiave del parametro. Nell'API REST i tipi possono essere impostati utilizzando il campo value_type all'interno dell'oggetto parametro.

Gruppi di parametri

Remote Config ti 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 le tipologie desiderate e poi organizzarli in un gruppo denominato "Nuovo login", senza bisogno di aggiungere prefissi o ordinamenti speciali.

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

  • I parametri possono essere inclusi in un solo gruppo alla volta e la chiave del 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

Puoi raggruppare i parametri nella scheda Parametri della console Firebase. Per creare o modificare un gruppo:

  1. Seleziona Gestisci gruppi .
  2. Seleziona le caselle di controllo per i parametri che desideri aggiungere e seleziona Sposta nel gruppo .
  3. Seleziona un gruppo esistente o crea un nuovo gruppo inserendo un nome e una descrizione e selezionando Crea nuovo gruppo . Dopo aver salvato un gruppo, è disponibile per la pubblicazione utilizzando il pulsante Pubblica modifiche .

Crea gruppi a livello di codice

L' API REST Remote Config fornisce un modo automatizzato per creare e pubblicare gruppi di parametri. Supponendo che tu abbia familiarità con REST e che tu sia configurato per autorizzare le richieste all'API, puoi eseguire questi passaggi per gestire i gruppi a livello di codice:

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

L'oggetto parameterGroups contiene chiavi di gruppo, con una descrizione nidificata e un elenco di parametri raggruppati. Tieni presente che ciascuna chiave di gruppo deve essere univoca a livello globale.

Ad esempio, ecco un estratto da una revisione del 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 di condizione

I seguenti tipi di regole sono supportati nella console Firebase. La funzionalità equivalente è disponibile nell'API REST Remote Config, come dettagliato nel riferimento all'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 aggiungi un'app a Firebase, inserisci un ID bundle o un nome di pacchetto Android che definisce un attributo esposto come ID app nelle regole di Remote Config.

Utilizza questo attributo come segue:
  • Per piattaforme Apple: utilizza CFBundleIdentifier dell'app. Puoi trovare l' identificatore del bundle nella scheda Generale per la destinazione principale della tua app in Xcode.
  • Per Android: utilizza applicationId dell'app. Puoi trovare applicationId nel file build.gradle a livello di app.
Versione dell'app Per i valori stringa:
corrisponde esattamente,
contiene,
non contiene,
espressione regolare

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

Specifica le versioni della tua app da scegliere come target.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Android/Apple associata al tuo progetto Firebase.

Per piattaforme Apple: utilizzare CFBundleShortVersionString dell'app.

Nota: assicurati che la tua app Apple utilizzi l'SDK per piattaforme Apple Firebase versione 6.24.0 o successiva, poiché CFBundleShortVersionString non viene inviato nelle versioni precedenti (vedi note sulla versione ).

Per Android: utilizza la versione dell'appName .

I confronti tra stringhe per questa regola fanno distinzione tra maiuscole e minuscole. Quando si utilizza l' operatore corrisponde esattamente , contiene , non contiene o un'espressione regolare , è possibile selezionare più valori.

Quando si utilizza l'operatore espressione regolare , è possibile creare espressioni regolari nel formato RE2 . La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per abbinare l'inizio, la fine o l'intera stringa di destinazione.

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

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

Specifica le build della tua app da scegliere come target.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Apple o Android associata al tuo progetto Firebase.

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

Quando si utilizza l' operatore corrisponde esattamente , contiene , non contiene o un'espressione regolare , è possibile selezionare più valori.

Quando si utilizza l'operatore espressione regolare , è possibile creare espressioni regolari nel formato RE2 . La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per abbinare l'inizio, la fine o l'intera stringa di destinazione.

piattaforma == iOS
Androide
ragnatela
Sistema operativo ==

Specificare i sistemi operativi di destinazione.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Web associata al tuo progetto Firebase.

Questa regola restituisce true per una determinata istanza dell'app Web se il sistema operativo e la relativa versione corrispondono a un valore di destinazione nell'elenco specificato.
Navigatore ==

Specificare i browser di destinazione.

Prima di utilizzare questa regola, devi utilizzare una regola ID app per selezionare un'app Web associata al tuo progetto Firebase.

Questa regola restituisce true per una determinata istanza dell'app Web se il browser e la relativa versione corrispondono a un valore di destinazione nell'elenco specificato.
Categoria del dispositivo È non è mobile Questa regola valuta se il dispositivo che accede alla tua app Web è mobile o non mobile (desktop o console). Questo tipo di regola è disponibile solo per le app Web.
Le lingue è dentro Seleziona una o più lingue. Questa regola restituisce true per una determinata istanza dell'app se tale istanza dell'app è installata su un dispositivo che utilizza una delle lingue elencate.
Paese/regione è dentro Seleziona una o più regioni o paesi. Questa regola risulta true per una determinata istanza dell'app se l'istanza si trova in una delle regioni o dei 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).
Pubblico/i di utenti Ne include almeno uno Seleziona uno o più segmenti di pubblico di Google Analytics dall'elenco che hai impostato per il tuo progetto.

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

Nota: poiché molti segmenti di pubblico di Analytics sono definiti da eventi o proprietà utente, che possono essere basati sulle azioni degli utenti dell'app, potrebbe essere necessario del tempo prima che una regola Utente nel pubblico abbia effetto per una determinata istanza dell'app.

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/virgola mobile.
Seleziona da un elenco di proprietà utente di Google Analytics disponibili. Per informazioni su come utilizzare le proprietà utente per personalizzare la tua app per segmenti molto specifici della tua base utenti, consulta Configurazione remota e proprietà utente .

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

Quando si utilizza l' operatore corrisponde esattamente , contiene , non contiene o un'espressione regolare , è possibile selezionare più valori.

Quando si utilizza l'operatore espressione regolare , è possibile creare espressioni regolari nel formato RE2 . La tua espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare le ancore ^ e $ per abbinare l'inizio, la fine o l'intera stringa di destinazione.

Nota: le proprietà utente raccolte automaticamente non sono attualmente disponibili durante la creazione delle condizioni di Remote Config.
Utente in percentuale casuale Dispositivo di scorrimento (nella console Firebase. L' API REST utilizza gli operatori <= , > e between ). 0-100

Utilizza questo campo per applicare una modifica a un campione casuale di istanze dell'app (con dimensioni campione fino a 0,0001%), utilizzando il widget del dispositivo di scorrimento per segmentare gli utenti mescolati casualmente (istanze dell'app) in gruppi.

Ogni istanza dell'app viene mappata in modo persistente su un numero intero o frazionario casuale, in base a un seed definito in quel progetto.

Una regola utilizzerà la chiave predefinita (mostrata come Modifica seed nella console Firebase) a meno che non modifichi il valore seed. È possibile ripristinare una regola utilizzando la chiave predefinita deselezionando il campo Seme .

Per gestire in modo coerente le stesse istanze dell'app entro determinati intervalli percentuali, utilizza lo stesso valore seed in tutte le condizioni. In alternativa, seleziona un nuovo gruppo di istanze dell'app assegnato in modo casuale per un determinato intervallo percentuale specificando un nuovo seed.

Ad esempio, per creare due condizioni correlate che si applicano ciascuna a un 5% non sovrapposto degli utenti di un'app, potresti configurare una condizione in modo che corrisponda a una percentuale compresa tra 0% e 5% e configurare un'altra condizione in modo che corrisponda a un intervallo compreso tra 5% e 5% 10%. Per consentire ad alcuni utenti di apparire in modo casuale in entrambi i gruppi, utilizzare valori seed diversi per le regole all'interno di ciascuna condizione.

Segmento importato è dentro Seleziona uno o più segmenti importati. Questa regola richiede l'impostazione di segmenti importati personalizzati .
Appuntamento Prima dopo 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.
Primo aperto Prima dopo Una data e un'ora specificate, nel fuso orario specificato.

Corrisponde agli utenti che aprono per primi l'app target entro l'intervallo di tempo specificato.

Richiede i seguenti SDK:

  • SDK Firebase per Google Analytics
  • SDK per piattaforme Apple v9.0.0+ o SDK Android v21.1.1+ (Firebase BoM v30.3.0+)

ID di installazione è dentro Specificare uno o più ID di installazione (fino a 50) da destinare. Questa regola restituisce true per una determinata installazione se l'ID di tale installazione è presente nell'elenco di valori separati da virgole.

Per informazioni su come ottenere gli ID di installazione, consulta Recuperare gli identificatori client .
L'utente esiste (nessun operatore) È destinato a tutti gli utenti di tutte le app all'interno del progetto corrente.

Utilizza questa regola di condizione per abbinare tutti gli utenti all'interno del progetto, indipendentemente dall'app o dalla piattaforma.

Ricerca parametri e condizioni

Puoi cercare le chiavi dei parametri, i valori dei parametri e le condizioni del tuo progetto dalla console Firebase utilizzando la casella di ricerca nella parte superiore della scheda Parametri di configurazione remota.

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 contenere fino a 256 caratteri, devono iniziare con un carattere di sottolineatura o una 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.

Visualizzazione delle modifiche ai parametri e alle condizioni

Puoi visualizzare le ultime modifiche ai modelli Remote Config dalla console Firebase . Per ogni singolo parametro e condizione è possibile:

  • Visualizza il nome dell'utente che ha modificato per ultimo il parametro o la condizione.

  • Se la modifica è avvenuta nello stesso giorno, visualizza il numero di minuti o ore trascorsi da quando la modifica è stata pubblicata nel modello Remote Config attivo.

  • Se la modifica è avvenuta uno o più giorni fa, visualizzare la data in cui la modifica è stata pubblicata nel modello Remote Config attivo.

Aggiornamenti dei parametri

Nella pagina Parametri di configurazione remota, la colonna Ultima pubblicazione mostra l'ultimo utente che ha modificato ciascun parametro e l'ultima data di pubblicazione della modifica:

  • Per visualizzare i metadati delle modifiche per i parametri raggruppati, espandere il gruppo di parametri.

  • Per ordinare in ordine crescente o decrescente in base alla data di pubblicazione, fare clic sull'etichetta della colonna Ultima pubblicazione .

Aggiornamenti sulle condizioni

Nella pagina Condizioni di configurazione remota è possibile visualizzare l'ultimo utente che ha modificato la condizione e la data in cui l'ha modificata accanto a Ultima modifica sotto ciascuna condizione.

Prossimi passi

Per iniziare a configurare il tuo progetto Firebase, consulta Configurazione di un progetto Firebase Remote Config .