Questa pagina è stata tradotta dall'API Cloud Translation.
Switch to English

Modelli di configurazione remota e controllo delle versioni

Il modello Remote Config è l'insieme lato server di parametri e condizioni in formato JSON che hai creato per il tuo progetto Firebase. Puoi modificare e gestire il modello utilizzando la console Firebase, che visualizza i contenuti del modello in formato grafico nelle schede Parametri e Condizioni . Puoi anche utilizzare le API back-end di Remote Config per modificare e gestire la tua configurazione.

Ecco un esempio di un file modello:

  {
    "conditions": [
      {
        "name": "ios",
        "expression": "device.os == 'ios'"
      }
    ],
    "parameters": {
      "welcome_message": {
        "defaultValue": {
          "value": "Welcome to this sample app"
        },
        "conditionalValues": {
          "ios": {
            "value": "Welcome to this sample iOS app"
          }
        }
      },
      "welcome_message_caps": {
        "defaultValue": {
          "value": "false"
        }
      },
      "header_text": {
        "defaultValue": {
          "useInAppDefault": true
        }
      }
    },
    "version": {
      "versionNumber": "28",
      "updateTime": "2020-05-14T18:39:38.994Z",
      "updateUser": {
        "email": "user@google.com"
      },
      "updateOrigin": "CONSOLE",
      "updateType": "INCREMENTAL_UPDATE"
    }
  }

Ogni volta che si aggiornano i parametri, Remote Config crea un nuovo modello di Remote Config con versione e memorizza il modello precedente come una versione che è possibile recuperare o ripristinare secondo necessità. I numeri di versione vengono incrementati sequenzialmente dal valore iniziale memorizzato da Remote Config. Tutti i modelli includono un campo della version come mostrato, contenente i metadati su quella specifica versione.

Con la console Firebase o le API back-end di Remote Config, puoi eseguire queste attività di gestione delle versioni:

  • Elenca tutte le versioni dei modelli archiviate
  • Recupera una versione specifica
  • Torna a una versione specifica

Quando gestisci i modelli di Remote Config, tieni presente la soglia di scadenza: 90 giorni dall'ora di creazione o un limite totale di 300 versioni archiviate. Se desideri memorizzare o ripristinare un modello al di fuori di questi limiti, salvalo e memorizzalo manualmente. Il modello di Remote Config attivo corrente in uso dalla tua app non scade; tuttavia, se è stato attivo per oltre 90 giorni dalla creazione e viene sostituito da un aggiornamento, non può essere recuperato nuovamente (a causa della scadenza).

Gestisci le versioni dei modelli di Remote Config con la console Firebase

La console Firebase fornisce un'interfaccia grafica per abilitare l'elenco delle versioni dei modelli, visualizzarne i dettagli e tornare indietro secondo necessità. Per eseguire queste attività:

  1. Nella scheda Parametri , seleziona l'icona "orologio" visualizzata in alto a destra. Si apre la pagina della cronologia delle modifiche che elenca tutte le versioni del modello memorizzate in un menu elenco a destra.

  2. Per impostazione predefinita, il riquadro dei dettagli visualizza il modello attivo corrente. Per visualizzare i dettagli di un'altra versione nell'elenco, selezionala dal menu a destra.

    I dettagli visualizzati per ciascuna versione archiviata includono informazioni sul fatto che le modifiche abbiano avuto origine con la console, con l'API REST, da un rollback o se fossero modifiche incrementali da un salvataggio forzato del modello.

  3. È possibile visualizzare una differenza dettagliata della versione attualmente selezionata e di qualsiasi altra versione memorizzata passando con il mouse sul menu di scelta rapida per qualsiasi versione non selezionata e selezionando Confronta con la versione selezionata.

  4. Per le versioni precedenti del modello idonee per il rollback, un pulsante di opzione per tornare a quella versione viene visualizzato in alto a destra nella pagina. Fare clic e confermare solo se si è certi di voler ripristinare quella versione e utilizzare immediatamente quei valori per tutte le app e gli utenti.

Gestisci le versioni dei modelli di Remote Config con le API di backend

Questa sezione descrive come gestire le versioni del tuo modello Remote Config utilizzando l'API REST e l'SDK Admin Firebase. Per ulteriori dettagli su come creare, modificare e salvare i modelli a livello di codice, vedere Modificare Remote Config a livello di codice .

Elenca tutte le versioni memorizzate del modello Remote Config

Con le API back-end di Remote Config, puoi recuperare un elenco di tutte le versioni archiviate del modello Remote Config. Per esempio:

Node.js

function listAllVersions() {
  admin.remoteConfig().listVersions()
    .then((listVersionsResult) => {
      console.log("Successfully fetched the list of versions");
      listVersionsResult.versions.forEach((version) => {
        console.log('version', JSON.stringify(version));
      });
    })
    .catch((error) => {
      console.log(error);
    });
}

RIPOSO

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>:listVersions

La risposta include i metadati per tutte le versioni archiviate, inclusa l'ora dell'aggiornamento, l'utente che l'ha effettuato e se è stato effettuato tramite la console o l'API REST. Ecco un esempio di un elemento di versione:

{
  "versions": [{
    "version_number": "6",
    "update_time": "2018-05-12T02:38:54Z",
    "update_user": {
      "email": "jane@developer.org",
    },
    "description": "One small change on the console",
    "origin": "CONSOLE",
    "update_type": "INCREMENTAL_UPDATE"
  }]

Recupera una versione specifica del modello Remote Config

Con le API back-end di Remote Config, puoi recuperare qualsiasi versione archiviata del modello Remote Config. Passa getTemplate() senza alcun argomento per recuperare l'ultima versione del modello o per recuperare una versione specifica, usa getTemplateAtVersion() . Per esempio:

Node.js

// Get template version: 6
admin.remoteConfig().getTemplateAtVersion('6')
  .then((template) => {
    console.log("Successfully fetched the template with ETag: " + template.etag);
  })
  .catch((error) => {
    console.log(error);
  });

RIPOSO

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig?version_number=6</pre>

Il parametro URL ?version_number è valido solo per le operazioni GET ; non è possibile utilizzarlo per specificare i numeri di versione per gli aggiornamenti. Una richiesta get simile senza il parametro ?version_number recupererebbe il modello attivo corrente.

Eseguire il rollback a una versione memorizzata specifica del modello Remote Config

Con le API back-end di Remote Config, puoi eseguire il rollback a qualsiasi versione archiviata del modello. Per esempio:

Node.js

// Roll back to template version: 6
admin.remoteConfig().rollback('6')
  .then((template) => {
    console.log("Successfully rolled back to template version 6.");
    console.log("New ETag: " + template.etag);
  })
  .catch((error) => {
    console.log('Error trying to rollback:', e);
  })

RIPOSO

Per eseguire il rollback a un modello Remote Config archiviato, emettere un POST HTTP con il metodo personalizzato :rollback e, nel corpo della richiesta, la versione specifica da applicare. Per esempio:

curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'</pre>

La risposta contiene il contenuto del modello archiviato ora attivo, con i metadati della nuova versione.

Notare che questa operazione di rollback crea effettivamente una nuova versione numerata. Ad esempio, il rollback dalla versione 10 alla versione 6 crea effettivamente una nuova copia della versione 6, diversa dall'originale solo per il fatto che il suo numero di versione è 11. La versione originale 6 è ancora memorizzata, supponendo che non abbia raggiunto la sua scadenza, e la versione 11 diventa il modello attivo.