Puoi configurare i modelli per i casi d'uso client e server. I modelli client vengono pubblicati in tutte le istanze dell'app che implementano gli SDK client Firebase per Remote Config, incluse le app Android, Apple, web, Unity, Flutter e C++. I parametri e i valori Remote Config dei modelli specifici del server vengono pubblicati nelle implementazioni Remote Config (inclusi Cloud Run e Cloud Functions) che utilizzano i seguenti ambienti server:
- SDK Firebase Admin Node.js v12.1.0+
- Firebase Admin Python SDK v6.7.0+
Quando utilizzi la console Firebase o le API di backend di Remote Config, definisci uno o più parametri (coppie chiave-valore) e fornisci i valori predefiniti in-app per questi parametri. Puoi eseguire l'override dei valori predefiniti in-app definendo i valori dei parametri. Le chiavi e i valori dei parametri sono stringhe, ma i valori dei parametri possono essere convertiti in altri tipi di dati quando li utilizzi nella tua app.
Utilizzando la console Firebase, Admin SDK 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 eseguire il rollback in base alle esigenze. Queste operazioni sono disponibili nella console Firebase, nell'Firebase Admin SDK e nell'API REST e sono descritte in modo più dettagliato nella sezione Gestire le versioni dei modelli Remote Config.
Questa guida spiega parametri, condizioni, regole, valori condizionali e come vengono assegnate le priorità ai vari valori dei parametri nel backend Remote Config e nella tua app. Fornisce inoltre dettagli sui tipi di regole utilizzati per creare le condizioni.
Condizioni, regole e valori condizionali
Una condizione viene utilizzata per scegliere come target un gruppo di istanze dell'app. Le condizioni sono costituite
da una o più regole che devono tutte restituire il valore true
affinché la condizione
restituisca il valore true
per una determinata istanza dell'app. Se il valore di una regola è
indefinito (ad esempio, quando non è disponibile alcun valore), la regola verrà valutata come
false
.
Ad esempio, puoi creare un parametro che definisca il nome e la stringa di versione di un modello linguistico di grandi dimensioni (LLM) e pubblicare risposte di modelli diversi in base a regole di segnali personalizzati. In questo caso d'uso, potresti utilizzare una versione stabile del modello come valore predefinito per gestire la maggior parte delle richieste e utilizzare il segnale personalizzato per utilizzare un modello sperimentale per rispondere alle richieste dei client di test.
Un parametro può avere più valori condizionali che utilizzano condizioni diverse e i parametri possono condividere le condizioni all'interno di un progetto. Nella scheda Parametri della console Firebase, puoi visualizzare la percentuale di recupero per ogni valore condizionale del parametro. Questa metrica indica la percentuale di richieste nelle ultime 24 ore che hanno ricevuto ciascun valore.
Priorità dei valori parametro
A un parametro potrebbero essere associati diversi valori condizionali. Le seguenti regole determinano quale valore viene recuperato dal modello Remote Config e quale valore viene utilizzato in una determinata istanza dell'app in un particolare momento:
Innanzitutto, vengono applicati i valori condizionali per qualsiasi condizione che restituisce
true
per una determinata richiesta client. Se più condizioni restituisconotrue
, ha la precedenza la prima (in alto) visualizzata nell'interfaccia utente della console Firebase e i valori condizionali associati a quella condizione vengono forniti quando un'app recupera i valori dal backend. Puoi modificare la priorità delle condizioni trascinandole nella scheda Condizioni.Se non sono presenti valori condizionali con condizioni che restituiscono
true
, il valore predefinito di Remote Config viene fornito quando un'app recupera i valori dal backend. Se un parametro non esiste nel backend o se il valore predefinito è impostato su Usa valore predefinito in-app, non viene fornito alcun valore per quel parametro quando un'app recupera i valori.
Nella tua app, i valori dei parametri vengono restituiti dai metodi get
in base al seguente elenco di priorità
- Se un valore è stato recuperato dal backend e poi attivato, l'app utilizza il valore recuperato. I valori dei parametri attivati sono persistenti.
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 saperne di più su come ottenere e impostare i valori predefiniti, vedi Scarica i valori predefiniti del modello Remote Config.
Se non è stato impostato alcun valore predefinito in-app, l'app utilizza un valore di tipo statico (ad esempio
0
perint
efalse
perboolean
).
Questa immagine riassume la priorità dei valori dei parametri nel backend Remote Config e nella tua app:
Tipi di dati dei valori dei parametri
Remote Config ti consente di selezionare un tipo di dati per ogni parametro e
convalida tutti i valori Remote Config in base a quel tipo prima di un aggiornamento
del modello. Il tipo di dati viene archiviato e restituito in una richiesta getRemoteConfig
.
I tipi di dati 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 più organizzata e migliorare l'usabilità.
Ad esempio, supponiamo che tu debba attivare o disattivare tre diversi tipi di autenticazione durante l'implementazione di una nuova funzionalità di accesso. Con Remote Config, puoi creare i tre parametri per attivare i tipi che preferisci e poi organizzarli in un gruppo denominato "Nuovo accesso", 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 che crei ha un nome univoco nel modello Remote Config. Quando crei gruppi di parametri, tieni presente quanto segue:
- I parametri possono essere inclusi in un solo gruppo alla volta e una chiave 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 sia la console Firebase, assicurati che la logica dell'API REST venga 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:
- Seleziona Gestisci gruppi.
- Seleziona le caselle di controllo dei parametri che vuoi aggiungere e seleziona Sposta nel gruppo.
- Seleziona un gruppo esistente o creane uno nuovo inserendo un nome e una descrizione e selezionando Crea nuovo gruppo. Dopo aver salvato un gruppo, questo può essere pubblicato utilizzando il pulsante Pubblica modifiche.
Tipi di regole di condizione
Nella console Firebase sono supportati i seguenti tipi di regole. Funzionalità equivalenti sono disponibili nell'API REST Remote Config, come descritto nel riferimento alle espressioni condizionali.
Tipo di regola | Operatore/i | Valori | Nota |
App | == | Seleziona un ID app da un elenco di app associate al tuo progetto Firebase. | Quando aggiungi un'app a Firebase, inserisci un ID bundle o un nome del pacchetto Android che definisce un attributo esposto come ID app nelle regole di Remote Config.
Utilizza questo attributo nel seguente modo:
|
Versione dell'app |
Per i valori stringa: corrispondenza esatta, contiene, non contiene, contiene espressione regolare Per i 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 le piattaforme Apple:utilizza CFBundleShortVersionString dell'app. Nota:assicurati che la tua app Apple utilizzi l'SDK Firebase per le piattaforme Apple versione 6.24.0 o successive, poiché CFBundleShortVersionString non viene inviato nelle versioni precedenti (vedi le note di rilascio). Per Android:utilizza versionName dell'app. I confronti tra stringhe per questa regola sono sensibili alle maiuscole. Quando utilizzi l'operatore corrisponde esattamente a, contiene, non contiene o contiene espressione regolare, puoi selezionare più valori. Quando utilizzi l'operatore contiene espressione regolare, puoi creare espressioni regolari in formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare una corrispondenza con l'inizio, la fine o l'intera stringa di destinazione. |
Numero build |
Per i valori stringa: corrispondenza esatta, contiene, non contiene, espressione regolare Per i 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 a CFBundleVersion per Apple e versionCode per Android. I confronti tra stringhe per questa regola sono sensibili alle maiuscole. Quando utilizzi l'operatore corrisponde esattamente a, contiene, non contiene o contiene espressione regolare, puoi selezionare più valori. Quando utilizzi l'operatore contiene espressione regolare, puoi creare espressioni regolari in formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare una corrispondenza con l'inizio, la fine o l'intera stringa di destinazione. |
Piattaforma | == | iOS Android Web |
|
Sistema operativo | == |
Specifica i sistemi operativi da scegliere come target. 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 di app web se il sistema operativo e la relativa versione corrispondono a un valore target nell'elenco specificato.
|
Browser | == |
Specifica i browser da scegliere come target. 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 di app web se
il browser e la relativa versione corrispondono a un valore target nell'elenco specificato.
|
Categoria dispositivo | è, non è | dispositivo mobile | Questa regola valuta se il dispositivo che accede alla tua app web è mobile o non mobile (computer o console). Questo tipo di regola è disponibile solo per le app web. |
Lingue | è in | Seleziona una o più lingue. | Questa regola restituisce true per una determinata istanza dell'app se
l'istanza dell'app è installata su un dispositivo che utilizza una delle lingue elencate.
|
Paese/regione | è in | Seleziona una o più regioni o paesi. | Questa regola restituisce 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 vengono condivisi con Firebase).
|
Segmenti di pubblico | Include almeno un elemento | Seleziona uno o più segmenti di pubblico Google Analytics da un elenco che hai configurato 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 Analytics sono definiti da eventi o proprietà utente, che possono essere basati sulle azioni degli utenti dell'app, potrebbe essere necessario un po' di tempo prima che una regola Utente nel segmento di pubblico diventi effettiva per una determinata istanza dell'app. |
Proprietà utente |
Per i valori stringa:
contiene, non contiene, corrisponde esattamente, contiene espressione regolare Per i valori numerici: =, ≠, >, ≥, <, ≤ Nota: sul client puoi 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/in virgola mobile. |
Seleziona un'opzione dall'elenco delle proprietà utente Google Analytics disponibili. | Per scoprire come utilizzare le proprietà utente per personalizzare l'app per segmenti molto specifici della tua base utenti, consulta
Remote Config e proprietà utente.
Per saperne di più sulle proprietà utente, consulta le seguenti guide: Quando utilizzi l'operatore corrisponde esattamente a, contiene, non contiene o contiene espressione regolare, puoi selezionare più valori. Quando utilizzi l'operatore contiene espressione regolare, puoi creare espressioni regolari in formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare una corrispondenza con l'inizio, la fine o l'intera stringa di destinazione. Nota:le proprietà utente raccolte automaticamente non sono disponibili quando crei condizioni Remote Config. |
Utente in percentuale casuale | Cursore (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 del campione anche dello 0,0001%), utilizzando il widget cursore per segmentare in modo casuale gli utenti (istanze dell'app) in gruppi. Ogni istanza dell'app viene mappata in modo permanente a un numero intero o frazionario casuale, in base a un seed definito nel progetto. Una regola utilizzerà la chiave predefinita (mostrata come Modifica seme nella console Firebase) a meno che tu non modifichi il valore del seme. Puoi ripristinare l'utilizzo della chiave predefinita per una regola deselezionando il campo Seed. Per indirizzare in modo coerente le stesse istanze dell'app all'interno di intervalli di percentuale specifici, utilizza lo stesso valore di seed in tutte le condizioni. In alternativa, seleziona un nuovo gruppo di istanze dell'app assegnato in modo casuale per un determinato intervallo di percentuale specificando un nuovo seed. Ad esempio, per creare due condizioni correlate che si applicano ciascuna a una percentuale non sovrapposta del 5% degli utenti di un'app, puoi configurare una condizione in modo che corrisponda a una percentuale compresa tra lo 0% e il 5% e un'altra condizione in modo che corrisponda a un intervallo compreso tra il 5% e il 10%. Per consentire ad alcuni utenti di apparire in modo casuale in entrambi i gruppi, utilizza valori iniziali diversi per le regole all'interno di ogni condizione. |
Segmento importato | è in | Seleziona uno o più segmenti importati. | Questa regola richiede la configurazione di segmenti importati personalizzati. |
Data/Ora | 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 attuale con l'ora di recupero del dispositivo. |
Prima apertura | Prima, Dopo | Una data e un'ora specificate, nel fuso orario specificato. | Corrisponde agli utenti che aprono per la prima volta l'app di destinazione nell'intervallo di tempo specificato. Richiede i seguenti SDK:
|
ID di installazione | è in | Specifica uno o più ID installazione (fino a 50) da scegliere come target. | Questa regola restituisce true per una determinata installazione se l'ID
dell'installazione è presente nell'elenco di valori separati da virgole.
Per scoprire come ottenere gli ID installazione, consulta l'articolo Recuperare gli identificatori client. |
Utente esistente | (nessun operatore) | Ha come target tutti gli utenti di tutte le app all'interno del progetto corrente. |
Utilizza questa regola di condizione per trovare tutti gli utenti all'interno del progetto, indipendentemente dall'app o dalla piattaforma. |
Indicatore personalizzato |
Per i valori stringa:
contiene, non contiene, corrisponde esattamente, contiene espressione regolare Per i valori numerici: =, ≠, >, ≥, <, ≤ Per i valori di versione: =, ≠, >, ≥, <, ≤ |
I confronti tra stringhe per questa regola sono sensibili alle maiuscole. Quando utilizzi l'operatore corrispondenza esatta, contiene, non contiene o contiene espressione regolare, puoi selezionare più valori. Quando utilizzi l'operatore regex contains, puoi creare espressioni regolari in formato RE2. L'espressione regolare può corrispondere a tutta o parte della stringa della versione di destinazione. Puoi anche utilizzare gli ancoraggi ^ e $ per trovare una corrispondenza con l'inizio, la fine o l'intera stringa di destinazione. Per gli ambienti client sono supportati i seguenti tipi di dati:
Numero che rappresenta i numeri di versione da corrispondere (ad esempio, 2.1.0). |
Per ulteriori informazioni sulle condizioni dei segmenti personalizzati e sulle espressioni condizionali da utilizzare, consulta Condizioni dei segmenti personalizzati ed Elementi utilizzati per creare le condizioni. |
Parametri e condizioni di ricerca
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 Remote Config.
Limiti relativi a 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 trattino basso o una lettera dell'alfabeto latino (A-Z, a-z) e possono includere anche numeri. La lunghezza totale delle stringhe di valori dei parametri all'interno di un progetto non può superare 1.000.000 di caratteri.
Visualizzare le modifiche a parametri e condizioni
Puoi visualizzare le ultime modifiche apportate ai tuoi modelli Remote Config dalla console Firebase. Per ogni singolo parametro e condizione, puoi:
Visualizza il nome dell'utente che ha modificato per ultimo il parametro o la condizione.
Se la modifica è stata apportata nello stesso giorno, visualizza il numero di minuti o ore trascorse dalla pubblicazione della modifica nel modello Remote Config attivo.
Se la modifica è stata apportata uno o più giorni prima, visualizza la data in cui è stata pubblicata nel modello Remote Config attivo.
Cronologia delle modifiche per i parametri
Nella pagina Remote Config Parametri, la colonna Ultima pubblicazione mostra l'ultimo utente che ha modificato ogni parametro e la data dell'ultima pubblicazione della modifica:
Per visualizzare i metadati delle modifiche per i parametri raggruppati, espandi il gruppo di parametri.
Per ordinare in ordine crescente o decrescente in base alla data di pubblicazione, fai clic sull'etichetta della colonna Ultima pubblicazione.
Cronologia delle modifiche per le condizioni
Nella pagina Remote Config Condizioni, puoi vedere l'ultimo utente che ha modificato la condizione e la data in cui l'ha modificata accanto a Ultima modifica in ogni condizione.