Les modèles Remote Config sont des ensembles de fichiers au format JSON les paramètres et conditions que vous avez créés pour votre projet Firebase. Toi Vous pouvez créer des modèles client à partir desquels votre application récupère des valeurs. server, à partir desquels les clients serveurs peuvent extraire des valeurs.
Cette section traite des modèles de client. Pour en savoir plus sur les modèles spécifiques au serveur, cliquez sur Modèles de serveur.Vous pouvez modifier et gérer le modèle à l'aide de la console Firebase, qui affiche le contenu du modèle sous forme graphique Paramètres et Onglets Conditions.
Vous pouvez également utiliser l'API REST Remote Config et le SDK Admin ou la CLI Firebase pour modifier et gérer votre modèle client.
Voici un exemple de fichier de modèle de serveur:
{
"parameters": {
"preamble_prompt": {
"defaultValue": {
"value": "You are a helpful assistant who knows everything there is to know about Firebase! "
},
"description": "Add this prompt to the user's prompt",
"valueType": "STRING"
},
"model_name": {
"defaultValue": {
"value": "gemini-pro-test"
},
"valueType": "STRING"
},
"generation_config": {
"defaultValue": {
"value": "{\"temperature\": 0.9, \"maxOutputTokens\": 2048, \"topP\": 0.9, \"topK\": 20}"
},
"valueType": "JSON"
},
},
"version": {
"versionNumber": "19",
"isLegacy": true
}
}
Vous pouvez effectuer les tâches de gestion des versions suivantes à l'aide de la console Firebase:
- Répertorier toutes les versions de modèle stockées
- Récupérer une version spécifique
- Effectuer un rollback vers une version spécifique du client
- Supprimez Remote Config modèle du historique page
La limite totale est de 300 versions stockées à vie par type de modèle (300 modèles de clients et 300 modèles de serveur), ce qui inclut les modèles les numéros de version des modèles supprimés. Si vous publiez plus de 300 des versions de modèle par type de modèle au cours de la durée de vie d'un projet, le versions les plus anciennes sont supprimées, en conservant un maximum de 300 versions de ce type.
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 sous
une version que vous pouvez récupérer
ou restaurer si nécessaire. Numéros de version
sont incrémentées de manière séquentielle à partir de la valeur initiale stockée par Remote Config.
Comme indiqué, tous les modèles incluent un champ version
, qui contient les métadonnées qui s'y rapportent
version spécifique.
Si nécessaire, vous pouvez supprimer Remote Config modèle à partir du Historique des modifications sur la console Remote Config.
Gérer Remote Config versions du modèle
Cette section explique comment gérer les versions de votre Remote Config modèle.
Répertorier toutes les versions stockées du modèle Remote Config
Vous pouvez récupérer une liste toutes les versions stockées du modèle Remote Config. Pour ce faire, procédez comme suit :
Console Firebase
Dans l'onglet Paramètres, sélectionnez l'icône en forme de horloge en haut à droite. Vous accédez ainsi Historique des modifications listant toutes les versions des modèles stockés dans un menu à droite.
Les informations affichées pour chaque version stockée indiquent si les modifications proviennent de la console, de l'API REST, d'un rollback ou s'il s'agit de modifications incrémentielles à partir d'un enregistrement forcé du modèle.
CLI Firebase
firebase remoteconfig:versions:list
Utilisez l'option --limit
pour limiter le nombre de versions renvoyées.
Réussir "0" pour récupérer toutes les versions.
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);
});
}
Java
ListVersionsPage page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); while (page != null) { for (Version version : page.getValues()) { System.out.println("Version: " + version.getVersionNumber()); } page = page.getNextPage(); } // Iterate through all versions. This will still retrieve versions in batches. page = FirebaseRemoteConfig.getInstance().listVersionsAsync().get(); for (Version version : page.iterateAll()) { System.out.println("Version: " + version.getVersionNumber()); }
REST
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:listVersions
La liste des modèles inclut les métadonnées de toutes les versions stockées, y compris l'heure de la mise à jour, l'utilisateur qui l'a effectuée et la méthode utilisée. Voici une exemple d'élément de version:
```json
{
"versions": [{
"version_number": "6",
"update_time": "2022-05-12T02:38:54Z",
"update_user": {
"name": "Jane Smith",
"email": "jane@developer.org",
"imageUrl": "https://lh3.googleusercontent.com/a-/..."
},
"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
Vous pouvez récupérer n'importe quelle version stockée spécifique du modèle Remote Config. Pour récupérer un modèle stocké version:
Console Firebase
Par défaut, le volet de détails Onglet Historique des modifications affiche le modèle actif actuel. Pour afficher les détails d'une autre version dans la liste, sélectionnez-la dans le menu de droite.
Vous pouvez afficher une comparaison détaillée de la version actuellement sélectionnée et de toute autre version stockée en pointant sur le menu contextuel d'une version non sélectionnée, puis en sélectionnant Comparer avec la version sélectionnée.
CLI Firebase
firebase remoteconfig:get -v VERSION_NUMBER
Vous pouvez éventuellement écrire la sortie dans un fichier spécifié avec -o, FILENAME
.
Node.js
Transmettez getTemplate()
sans argument pour récupérer la dernière version du modèle. Pour récupérer une version spécifique, utilisez getTemplateAtVersion()
.
// 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);
});
Java
Template template = FirebaseRemoteConfig.getInstance().getTemplateAtVersionAsync(versionNumber).get(); // See the ETag of the fetched template. System.out.println("Successfully fetched the template with ETag: " + template.getETag());
REST
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
Le paramètre d'URL ?version_number
n'est valide que pour les opérations GET
. Vous ne pouvez pas l'utiliser pour spécifier des numéros de version pour les mises à jour. Une requête get similaire sans le paramètre ?version_number
récupérerait le modèle actif actuel.
Effectuer un rollback vers une version stockée spécifique du modèle Remote Config
Vous pouvez effectuer un rollback vers n'importe quelle instance du modèle. Pour effectuer le rollback d'un modèle:
Console Firebase
Pour les versions de modèle précédentes éligibles au rollback, permettant de revenir à cette version s'affiche en haut à droite Historique des modifications . Cliquez sur cette option et confirmez-la uniquement si vous êtes sûr de vouloir effectuer un rollback et d'utiliser ces valeurs immédiatement pour toutes les applications et tous les utilisateurs.
CLI Firebase
firebase remoteconfig:rollback -v VERSION_NUMBER
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);
})
Java
try { Template template = FirebaseRemoteConfig.getInstance().rollbackAsync(versionNumber).get(); System.out.println("Successfully rolled back to template version: " + versionNumber); System.out.println("New ETag: " + template.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Error trying to rollback template."); System.out.println(rcError.getMessage()); } }
REST
Pour effectuer un rollback vers un modèle Remote Config stocké, envoyez une requête HTTP POST avec
la méthode personnalisée :rollback
et, dans le corps de la requête, la version spécifique
à appliquer. Exemple :
curl --compressed -D headers -H "Authorization: Bearer <var>token</var>" -H "Content-Type: application/json" -X POST https://firebaseremoteconfig.googleapis.com/v1/projects/<var>my-project-id</var>/remoteConfig:rollback -d '{"version_number": 6}'
La réponse contient le contenu du modèle stocké désormais actif, avec ses métadonnées de nouvelle version.
Notez que ce rollback crée une nouvelle version numérotée. Par exemple, effectuer un rollback de la version 10 à la version 6 crée une nouvelle copie de la version 6, avec une de l'original uniquement en ce que son numéro de version est 11. Version originale 6 est toujours stocké, en supposant qu'elle n'a pas atteint sa date d'expiration, et la version 11 devient le modèle actif.
Supprimer un modèle Remote Config
Vous pouvez supprimer les modèles Remote Config de la console Firebase. À Supprimez un modèle Remote Config:
1. Source : Remote Config Paramètres , cliquez sur Historique des modifications.Basculez vers le modèle que vous souhaitez supprimer, puis cliquez sur
Plus, puis sélectionnez Supprimer.Lorsque vous êtes invité à confirmer la suppression, cliquez sur Supprimer.
Télécharger et publier des modèles Remote Config
Téléchargez et publiez des modèles Remote Config pour les intégrer à vos le contrôle des sources et les systèmes de compilation, automatiser les mises à jour de configuration et conserver les paramètres et leurs valeurs synchronisées entre plusieurs projets.
Vous pouvez télécharger le modèle Remote Config actifdepuis la console Firebase. Vous pouvez ensuite mettre à jour JSON exporté et le publier dans le même projet, ou le publier dans un nouveau ou projet existant.
Supposons que vous ayez plusieurs projets qui représentent différentes étapes de votre du cycle de vie du développement logiciel, comme le développement, les tests, la préproduction et la production de l'infrastructure. Dans ce cas, vous pouvez promouvoir un modèle entièrement testé à partir de votre de préproduction vers votre environnement de production en le téléchargeant depuis votre de préproduction et de le publier dans votre projet de production.
Vous pouvez également utiliser cette méthode pour migrer des configurations d'un projet vers ou insérer dans un nouveau projet les paramètres et les valeurs d'une un projet établi.
Les paramètres et valeurs de paramètres créés spécifiquement en tant que variantes dans une A/B Testing test ne sont pas inclus dans les modèles exportés.
Pour exporter et importer des modèles Remote Config:
- Téléchargez le modèle de configuration Remote Config actuel.
- Validez le modèle Remote Config.
- Publiez le modèle Remote Config.
Télécharger le modèle Remote Config actuel
Utilisez ce qui suit pour télécharger le modèle Remote Config actif dans Format JSON:
Console Firebase
- Dans l'onglet Remote Config Paramètres ou conditions, ouvrez le Menu, puis sélectionnez Télécharger le fichier de configuration actuel.
- Lorsque vous y êtes invité, cliquez sur Télécharger le fichier de configuration, puis sélectionnez l'emplacement où vous souhaitez enregistrer le fichier, puis cliquez sur Enregistrer.
CLI Firebase
firebase remoteconfig:get -o filename
Node.js
function getTemplate() { var config = admin.remoteConfig(); config.getTemplate() .then(function (template) { console.log('ETag from server: ' + template.etag); var templateStr = JSON.stringify(template); fs.writeFileSync('config.json', templateStr); }) .catch(function (err) { console.error('Unable to get template'); console.error(err); }); }
Java
Template template = FirebaseRemoteConfig.getInstance().getTemplateAsync().get(); // See the ETag of the fetched template. System.out.println("ETag from server: " + template.getETag());
REST
curl --compressed -D headers -H "Authorization: Bearer token" -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -o filename
Cette commande génère la charge utile JSON dans un fichier et les en-têtes (y compris l'ETag) dans un fichier headers
distinct.
Valider le modèle Remote Config
Vous pouvez valider les mises à jour de votre modèle avant de les publier à l'aide de Firebase Admin SDK ou de l'API REST. Les modèles sont également validés lorsque vous tentez à partir de la CLI Firebase ou de la console Firebase.Le processus de validation du modèle recherche les erreurs telles que les clés en double pour
des paramètres et conditions, des noms de conditions non valides ou des conditions inexistantes, ou
des ETags mal formatés. Par exemple, une requête contenant plus de
de clés (2 000) renverrait le message d'erreur Param count too
large
.
Node.js
function validateTemplate(template) { admin.remoteConfig().validateTemplate(template) .then(function (validatedTemplate) { // The template is valid and safe to use. console.log('Template was valid and safe to use'); }) .catch(function (err) { console.error('Template is invalid and cannot be published'); console.error(err); }); }
Java
try { Template validatedTemplate = FirebaseRemoteConfig.getInstance() .validateTemplateAsync(template).get(); System.out.println("Template was valid and safe to use"); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Template is invalid and cannot be published"); System.out.println(rcError.getMessage()); } }
REST
Ajoutez le paramètre d'URL ?validate_only=true
pour valider les mises à jour du modèle
à votre requête de publication:
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig?validate_only=true -d @filename
Si votre modèle a été validé, la commande curl renvoie le modèle JSON que vous avez envoyé. Dans le fichier headers
enregistré, vous trouverez un code d'état HTTP/2 200 et un ETag mis à jour avec le suffixe -0
. Si votre modèle n'a pas été validé, vous recevrez l'erreur de validation dans la réponse JSON et votre fichier headers
contiendra une réponse autre que 200 (et aucune balise ETag).
Publier le modèle Remote Config
après avoir téléchargé un modèle, apporter les modifications nécessaires au contenu JSON ; le valider, vous pouvez le publier dans un projet.
La publication d'un modèle remplace l'intégralité du modèle de configuration existant par le fichier mis à jour et incrémente la version du modèle de un. Parce que l'ensemble est remplacée, si vous supprimez un paramètre du fichier JSON et publié, le paramètre est supprimé du serveur et n'est plus disponible aux clients.
Après publication, les modifications apportées aux paramètres et aux valeurs sont disponibles immédiatement à vos applications et utilisateurs. Si nécessaire, vous pouvez effectuer un rollback vers une version précédente.
Utilisez les commandes suivantes pour publier votre modèle:
Console Firebase
- Dans l' Paramètres ou conditions Remote Config ouvrez l'onglet Menu, et sélectionnez Publier à partir d'un fichier.
- Lorsque vous y êtes invité, cliquez sur Parcourir, accédez à l'onglet Remote Config que vous souhaitez publier, puis cliquez sur Sélectionner.
- Le fichier est validé. Si l'opération réussit, vous pouvez cliquer sur Publiez pour que la configuration soit immédiatement disponible les applications et les utilisateurs.
Node.js
function publishTemplate() { var config = admin.remoteConfig(); var template = config.createTemplateFromJSON( fs.readFileSync('config.json', 'UTF8')); config.publishTemplate(template) .then(function (updatedTemplate) { console.log('Template has been published'); console.log('ETag from server: ' + updatedTemplate.etag); }) .catch(function (err) { console.error('Unable to publish template.'); console.error(err); }); }
Java
try { Template publishedTemplate = FirebaseRemoteConfig.getInstance() .publishTemplateAsync(template).get(); System.out.println("Template has been published"); // See the ETag of the published template. System.out.println("ETag from server: " + publishedTemplate.getETag()); } catch (ExecutionException e) { if (e.getCause() instanceof FirebaseRemoteConfigException) { FirebaseRemoteConfigException rcError = (FirebaseRemoteConfigException) e.getCause(); System.out.println("Unable to publish template."); System.out.println(rcError.getMessage()); } }
REST
curl --compressed -H "Content-Type: application/json; UTF8" -H "If-Match: last-returned-etag" -H "Authorization: Bearer token" -X PUT https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig -d @filename
Pour cette commande curl
, vous pouvez spécifier le contenu en utilisant le signe "@".
suivi du nom du fichier.
Remote Config personnalisations et conditions sont incluses dans les modèles que vous avez téléchargés. Il est donc important de connaître Limites en cas de tentative de publication dans un autre projet:
Les personnalisations ne peuvent pas être importées d'un projet à un autre.
Par exemple, si les personnalisations sont activées dans votre projet télécharger et modifier un modèle, vous pouvez le publier mais vous ne pouvez pas le publier dans un autre projet, sauf si vous le supprimez les personnalisations du modèle.
Les conditions peuvent être importées d'un projet à un autre, mais notez que toutes les valeurs conditionnelles spécifiques (telles que les ID d'application ou les audiences) doivent exister dans le projet cible avant la publication.
Par exemple, si vous disposez d'un paramètre Remote Config qui utilise une condition spécifiant la valeur de plate-forme
iOS
, le modèle peut être publié un autre projet, car les valeurs de la plate-forme sont les mêmes pour tous les projets. Toutefois, s'il contient une condition qui repose sur un ID d'application ou un utilisateur spécifique d'audience qui n'existe pas dans le projet cible, la validation échouera.Si le modèle que vous prévoyez de publier contient des conditions qui reposent sur Google Analytics et Analytics doivent être activés dans la cible projet.
Télécharger les valeurs par défaut du modèle Remote Config
Comme votre application ne est pas toujours connectée à Internet, vous devez configurer les valeurs par défaut de l'application côté client pour tous les Remote Config paramètres. Vous devez également synchroniser régulièrement les valeurs par défaut du client de votre application et les valeurs de paramètre par défaut du backend Remote Config, car elles peuvent changer au fil du temps.
Comme indiqué dans les liens spécifiques à chaque plate-forme à la fin de cette section, vous pouvez définir manuellement ces paramètres par défaut dans votre application ou simplifier ce processus en Télécharger des fichiers contenant uniquement les paires clé-valeur pour tous les paramètres et leurs valeurs par défaut dans le modèle Remote Config actif. Vous pouvez ensuite inclure ce fichier dans votre projet et configurer votre application pour importer ces valeurs.
Vous pouvez télécharger ces fichiers au format XML pour les applications Android, Liste de propriétés (plist) pour les applications iOS et JSON pour les applications Web.
Nous vous recommandons de télécharger régulièrement les paramètres par défaut de Remote Config avant toute nouvelle version de l'application pour vous assurer que votre application et le backend Remote Config restent synchroniser.
Pour télécharger un fichier contenant les valeurs par défaut des modèles:
REST
curl --compressed -D headers -H "Authorization: Bearer token -X GET https://firebaseremoteconfig.googleapis.com/v1/projects/my-project-id/remoteConfig:downloadDefaults?format=file_format'
Utilisez XML
, PLIST
ou JSON
comme valeur format
, selon le fichier.
format que vous souhaitez télécharger.
Console Firebase
- Dans l'onglet Paramètres, ouvrez le menu , puis sélectionnez Télécharger les valeurs par défaut
- Lorsque vous y êtes invité, cochez la case d'option correspondant au fichier. format que vous souhaitez télécharger, puis cliquez sur Télécharger le fichier.
Pour en savoir plus sur l'importation de Remote Config valeurs par défaut dans vos consultez la page suivante:
Définir les valeurs de paramètre par défaut dans les applications pour Android
Définir les valeurs de paramètre par défaut dans les applications pour iOS
Définir les valeurs de paramètre par défaut dans les applications pour le Web
Définir les valeurs de paramètre par défaut dans les applications pour Unity
Définir les valeurs de paramètre par défaut dans l'application pour C++