Google is committed to advancing racial equity for Black communities. See how.
Cette page a été traduite par l'API Cloud Translation.
Switch to English

Modèles de configuration à distance et gestion des versions

Le modèle Remote Config est l'ensemble côté serveur de paramètres et de conditions au format JSON que vous avez créés pour votre projet Firebase. Vous pouvez modifier et gérer le modèle à l'aide de la console Firebase, qui affiche le contenu du modèle au format graphique dans les onglets Paramètres et Conditions . Vous pouvez également utiliser les API backend de Remote Config pour modifier et gérer votre configuration.

Voici un exemple de fichier modèle:

   {
    "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"
    }
  }
 

Chaque fois que vous mettez à jour des paramètres, Remote Config crée un nouveau modèle Remote Config versionné et stocke le modèle précédent en tant que version que vous pouvez récupérer ou restaurer selon vos besoins. Les numéros de version sont incrémentés séquentiellement à partir de la valeur initiale stockée par Remote Config. Tous les modèles incluent un champ de version comme indiqué, contenant des métadonnées sur cette version spécifique.

Avec la console Firebase ou les API backend de Remote Config, vous pouvez effectuer ces tâches de gestion de version:

  • Répertorier toutes les versions de modèles stockées
  • Récupérer une version spécifique
  • Revenir à une version spécifique

Lorsque vous gérez les modèles Remote Config, gardez à l'esprit le seuil d'expiration: 90 jours à compter de la création ou une limite totale de 300 versions stockées. Si vous souhaitez stocker ou revenir à un modèle en dehors de ces limites, enregistrez-le et stockez-le manuellement. Le modèle de configuration à distance actif actuellement utilisé par votre application n'expire pas ; cependant, s'il est actif plus de 90 jours depuis sa création et est remplacé par une mise à jour, il ne peut pas être récupéré à nouveau (en raison de son expiration).

Gérez les versions de modèles de Remote Config avec la console Firebase

La console Firebase fournit une interface graphique permettant de répertorier les versions de modèles, d'afficher leurs détails et de revenir en arrière si nécessaire. Pour effectuer ces tâches:

  1. Dans l'onglet Paramètres , sélectionnez l'icône "horloge" affichée en haut à droite. Cela ouvre la page Historique des modifications répertoriant toutes les versions de modèles stockées dans un menu de liste à droite.

  2. Par défaut, le volet de détails affiche le modèle actif actuel. Pour afficher les détails d'une autre version de la liste, sélectionnez-la dans le menu de droite.

    Les détails affichés pour chaque version stockée incluent des informations indiquant si les modifications proviennent de la console, de l'API REST, d'une restauration ou s'il s'agit de modifications incrémentielles à partir d'une sauvegarde forcée du modèle.

  3. Vous pouvez afficher une différence détaillée de la version actuellement sélectionnée et de toute autre version stockée en survolant le menu contextuel de toute version non sélectionnée et en sélectionnant Comparer avec la version sélectionnée.

  4. Pour les versions de modèle précédentes éligibles à la restauration, un bouton d'option permettant de revenir à cette version s'affiche en haut à droite de la page. Cliquez et confirmez cela uniquement si vous êtes sûr de vouloir revenir à cette version et d'utiliser ces valeurs immédiatement pour toutes les applications et tous les utilisateurs.

Gérez les versions de modèles de Remote Config avec les API backend

Cette section décrit comment gérer les versions de votre modèle Remote Config à l'aide de l'API REST et du SDK Firebase Admin. Pour plus de détails sur la création, la modification et l'enregistrement de modèles par programme, consultez Modifier la configuration à distance par programme .

Répertoriez toutes les versions stockées du modèle Remote Config

Avec les API backend de Remote Config, vous pouvez récupérer une liste de toutes les versions stockées du modèle Remote Config. Par exemple:

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);
    });
}
 

DU REPOS

 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 réponse comprend des métadonnées pour toutes les versions stockées, y compris l'heure de la mise à jour, l'utilisateur qui l'a effectuée et si elle a été effectuée via la console ou l'API REST. Voici un exemple d'élément de version:

 {
  "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"
  }]
 

Récupérer une version spécifique du modèle Remote Config

Avec les API backend de Remote Config, vous pouvez récupérer n'importe quelle version stockée du modèle Remote Config. Passez getTemplate() sans aucun argument pour récupérer la dernière version du modèle, ou pour récupérer une version spécifique, utilisez getTemplateAtVersion() . Par exemple:

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);
  });
 

DU REPOS

 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>
 

Le paramètre d'URL ?version_number n'est valide que pour GET opérations GET ; vous ne pouvez pas l'utiliser pour spécifier les numéros de version des mises à jour. Une requête get similaire sans le paramètre ?version_number récupérerait le modèle actif actuel.

Revenir à une version stockée spécifique du modèle Remote Config

Avec les API backend de Remote Config, vous pouvez revenir à n'importe quelle version stockée du modèle. Par exemple:

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);
  })
 

DU REPOS

Pour revenir à un modèle de configuration à distance stocké, émettez un HTTP POST avec la méthode personnalisée :rollback et, dans le corps de la requête, la version spécifique à appliquer. Par exemple:

 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 réponse contient le contenu du modèle stocké désormais actif, avec ses nouvelles métadonnées de version.

Notez que cette opération de restauration crée effectivement une nouvelle version numérotée. Par exemple, le retour de la version 10 à la version 6 crée effectivement une nouvelle copie de la version 6, qui ne diffère de l'original que par le fait que son numéro de version est 11. La version 6 d'origine est toujours stockée, en supposant qu'elle n'a pas atteint son expiration, et la version 11 devient le modèle actif.