Stocker les paramètres de confidentialité avec Firebase

Firebase facilite la collecte et le suivi des préférences des utilisateurs en matière de collecte et de traitement des données :

  1. Configurer les paramètres de confidentialité
  2. Mettez à jour votre application pour utiliser les paramètres de confidentialité
  3. Suivre les modifications des paramètres de confidentialité

Configurer les paramètres de confidentialité

Pour collecter et stocker les paramètres de confidentialité, vous aurez besoin de deux éléments : une interface utilisateur pour inviter les utilisateurs à saisir leurs paramètres de confidentialité et un moyen de stocker ces paramètres.

Création d'une interface utilisateur de paramètres de confidentialité

Le format d’une interface utilisateur de paramètres de confidentialité dépend de vous. Voici quelques éléments à prendre en compte lors de la création de votre interface utilisateur :

Comprendre les données que vous collectez

Prenez le temps de cataloguer les données utilisateur que votre application stocke ou traite. Assurez-vous d'inclure les données que votre application collecte directement et les données collectées par les services utilisés par votre application. Pour les services Firebase, il peut être utile de vérifier les exemples de données d'utilisateur final traitées par Firebase .

Concevez votre interface utilisateur pour aider les utilisateurs

Essayez de décrire les types de données que vous collectez dans des termes concis et conviviaux, y compris la manière dont les données collectées aident votre application ou seront utilisées.

Si votre application a besoin de certaines données pour fonctionner correctement, vous pouvez éviter les erreurs en désactivant le bouton d'envoi de votre interface utilisateur jusqu'à ce qu'un utilisateur sélectionne les options nécessaires au fonctionnement de votre application. Réfléchissez à ce que devrait être le flux de votre application pour les utilisateurs qui autorisent certains types de collectes de données et pas d'autres.

Bouton Soumettre désactivé jusqu'à ce que l'utilisateur accepte la politique de confidentialité Bouton Soumettre désactivé jusqu'à ce que l'utilisateur accepte la politique de confidentialité

Stockage des paramètres de confidentialité

L'endroit et la manière dont vous stockez les paramètres de confidentialité de vos utilisateurs dépendent également de vous. Vous pouvez utiliser n'importe quel identifiant fiable pouvant associer un utilisateur aux sélections qu'il effectue dans l'interface utilisateur de vos paramètres de confidentialité.

Une approche courante consiste à utiliser l'identifiant comme clé pour stocker les préférences dans le magasin de données que vous utilisez dans votre application. Par exemple, vous pouvez utiliser les UID d'authentification Firebase comme clé dans une instance de base de données en temps réel ou utiliser un ID d'instance Firebase pour organiser des collections de documents Firestore.

Exemple : stockage des préférences utilisateur avec les UID d'authentification et la base de données en temps réel

Considérez une application de médias sociaux qui utilise les UID d'authentification Firebase et la base de données en temps réel Firebase pour stocker les préférences de l'utilisateur.

Pour garantir que les données des utilisateurs restent sécurisées et privées, l'application enregistre leurs préférences dans une partie distincte de la base de données avec des règles de sécurité restrictives qui permettent uniquement à cet utilisateur de lire ou d'écrire. L'application vérifie également que les valeurs attendues sont uniquement des booléennes et qu'elle n'accepte pas de valeurs inattendues :

"privacy": {
  "$uid": {
    ".write": "auth.uid === $uid",
    ".read": "auth.uid === $uid",
    "data_processing": {
      ".validate": "newData.isBoolean()"
    },
    "content": {
      ".validate": "newData.isBoolean()"
    },
    "social": {
      ".validate": "newData.isBoolean()"
    },
    "$other": {
      ".validate": "false"
    }
  }
}

Mettez à jour votre application pour utiliser les paramètres de confidentialité

Une fois que les paramètres de confidentialité des utilisateurs sont disponibles dans votre application, vous pouvez activer des fonctionnalités spécifiques pour les utilisateurs qui ont activé des paramètres spécifiques. Demandez à votre application de vérifier les paramètres avant de charger des fonctionnalités qui collectent des données ou utilisent des données collectées. Dans le cas d’une fonctionnalité, réfléchissez à ce que serait la meilleure expérience sans cette fonctionnalité. Par exemple, si l'application est une plate-forme de microblogging et qu'un utilisateur a désactivé l'application pour stocker ses publications, la meilleure expérience utilisateur peut être de supprimer l'option de création d'une publication.

Suivre les modifications des paramètres de confidentialité

Une fois qu’un utilisateur a accordé l’autorisation de collecter des données, il peut changer d’avis. Ajoutez un bouton ou un lien vers votre écran de profil ou de paramètres où ils peuvent mettre à jour leurs paramètres de confidentialité.

Le Le lien « Paramètres de confidentialité » fait apparaître la boîte de dialogue des paramètres pour permettre aux utilisateurs de mettre à jour leurs paramètres.

Vous pouvez également décider de la manière dont votre application doit gérer lorsqu'un utilisateur décide de désactiver la collecte de données. Par exemple, vous pouvez proposer à l'utilisateur la possibilité de supprimer les données collectées ou de le faire automatiquement. Pensez à utiliser Cloud Functions pour Firebase pour supprimer les données, car, en fonction de la quantité de données à supprimer, l'opération peut prendre quelques minutes. Consultez le guide de suppression et d'exportation des données utilisateur pour en savoir plus à ce sujet.

Stockez séparément un journal d'audit des paramètres de confidentialité de vos utilisateurs

Certains développeurs d'applications souhaiteront peut-être conserver une trace des modifications apportées aux paramètres de confidentialité. Cela peut être fait à l'aide de Realtime Database ou Firestore en créant une nouvelle section de la base de données qui constituera un journal d'audit des modifications de confidentialité, structuré sous l'identifiant unique de l'utilisateur, et incluant les nouveaux paramètres de confidentialité et l'horodatage. Lorsqu'un utilisateur met à jour ses paramètres de confidentialité, effectuez deux écritures, une dans les paramètres de confidentialité de l'utilisateur et une dans le journal d'audit. Il est important d'en faire une section distincte afin que vous puissiez créer des règles de sécurité plus restrictives. Pour les utilisateurs de Firestore, assurez-vous que les documents du journal d'audit ne soient pas modifiables à l'aide de règles granulaires :

match /audit_log/{uid} {
   allow create: if uid = request.auth.uid;
   allow update: if false;
   allow delete: if false;
 }

Avec ces quatre étapes, comprendre vos données, collecter vos préférences, stocker vos préférences et suivre les modifications, il est simple de vous assurer que votre application respecte la confidentialité de vos utilisateurs. , Firebase facilite la collecte et le suivi des préférences des utilisateurs en matière de collecte et de traitement des données :

  1. Configurer les paramètres de confidentialité
  2. Mettez à jour votre application pour utiliser les paramètres de confidentialité
  3. Suivre les modifications des paramètres de confidentialité

Configurer les paramètres de confidentialité

Pour collecter et stocker les paramètres de confidentialité, vous aurez besoin de deux éléments : une interface utilisateur pour inviter les utilisateurs à saisir leurs paramètres de confidentialité et un moyen de stocker ces paramètres.

Création d'une interface utilisateur de paramètres de confidentialité

Le format d’une interface utilisateur de paramètres de confidentialité dépend de vous. Voici quelques éléments à prendre en compte lors de la création de votre interface utilisateur :

Comprendre les données que vous collectez

Prenez le temps de cataloguer les données utilisateur que votre application stocke ou traite. Assurez-vous d'inclure les données que votre application collecte directement et les données collectées par les services utilisés par votre application. Pour les services Firebase, il peut être utile de vérifier les exemples de données d'utilisateur final traitées par Firebase .

Concevez votre interface utilisateur pour aider les utilisateurs

Essayez de décrire les types de données que vous collectez dans des termes concis et conviviaux, y compris la manière dont les données collectées aident votre application ou seront utilisées.

Si votre application a besoin de certaines données pour fonctionner correctement, vous pouvez éviter les erreurs en désactivant le bouton d'envoi de votre interface utilisateur jusqu'à ce qu'un utilisateur sélectionne les options nécessaires au fonctionnement de votre application. Réfléchissez à ce que devrait être le flux de votre application pour les utilisateurs qui autorisent certains types de collectes de données et pas d'autres.

Bouton Soumettre désactivé jusqu'à ce que l'utilisateur accepte la politique de confidentialité Bouton Soumettre désactivé jusqu'à ce que l'utilisateur accepte la politique de confidentialité

Stockage des paramètres de confidentialité

L'endroit et la manière dont vous stockez les paramètres de confidentialité de vos utilisateurs dépendent également de vous. Vous pouvez utiliser n'importe quel identifiant fiable pouvant associer un utilisateur aux sélections qu'il effectue dans l'interface utilisateur de vos paramètres de confidentialité.

Une approche courante consiste à utiliser l'identifiant comme clé pour stocker les préférences dans le magasin de données que vous utilisez dans votre application. Par exemple, vous pouvez utiliser les UID d'authentification Firebase comme clé dans une instance de base de données en temps réel ou utiliser un ID d'instance Firebase pour organiser des collections de documents Firestore.

Exemple : stockage des préférences utilisateur avec les UID d'authentification et la base de données en temps réel

Considérez une application de médias sociaux qui utilise les UID d'authentification Firebase et la base de données en temps réel Firebase pour stocker les préférences de l'utilisateur.

Pour garantir que les données des utilisateurs restent sécurisées et privées, l'application enregistre leurs préférences dans une partie distincte de la base de données avec des règles de sécurité restrictives qui permettent uniquement à cet utilisateur de lire ou d'écrire. L'application vérifie également que les valeurs attendues sont uniquement des booléennes et qu'elle n'accepte pas de valeurs inattendues :

"privacy": {
  "$uid": {
    ".write": "auth.uid === $uid",
    ".read": "auth.uid === $uid",
    "data_processing": {
      ".validate": "newData.isBoolean()"
    },
    "content": {
      ".validate": "newData.isBoolean()"
    },
    "social": {
      ".validate": "newData.isBoolean()"
    },
    "$other": {
      ".validate": "false"
    }
  }
}

Mettez à jour votre application pour utiliser les paramètres de confidentialité

Une fois que les paramètres de confidentialité des utilisateurs sont disponibles dans votre application, vous pouvez activer des fonctionnalités spécifiques pour les utilisateurs qui ont activé des paramètres spécifiques. Demandez à votre application de vérifier les paramètres avant de charger des fonctionnalités qui collectent des données ou utilisent des données collectées. Dans le cas d’une fonctionnalité, réfléchissez à ce que serait la meilleure expérience sans cette fonctionnalité. Par exemple, si l'application est une plate-forme de microblogging et qu'un utilisateur a désactivé l'application pour stocker ses publications, la meilleure expérience utilisateur peut être de supprimer l'option de création d'une publication.

Suivre les modifications des paramètres de confidentialité

Une fois qu’un utilisateur a accordé l’autorisation de collecter des données, il peut changer d’avis. Ajoutez un bouton ou un lien vers votre écran de profil ou de paramètres où ils peuvent mettre à jour leurs paramètres de confidentialité.

Le Le lien « Paramètres de confidentialité » fait apparaître la boîte de dialogue des paramètres pour permettre aux utilisateurs de mettre à jour leurs paramètres.

Vous pouvez également décider de la manière dont votre application doit gérer lorsqu'un utilisateur décide de désactiver la collecte de données. Par exemple, vous pouvez proposer à l'utilisateur la possibilité de supprimer les données collectées ou de le faire automatiquement. Pensez à utiliser Cloud Functions pour Firebase pour supprimer les données, car, en fonction de la quantité de données à supprimer, l'opération peut prendre quelques minutes. Consultez le guide de suppression et d'exportation des données utilisateur pour en savoir plus à ce sujet.

Stockez séparément un journal d'audit des paramètres de confidentialité de vos utilisateurs

Certains développeurs d'applications souhaiteront peut-être conserver une trace des modifications apportées aux paramètres de confidentialité. Cela peut être fait à l'aide de Realtime Database ou Firestore en créant une nouvelle section de la base de données qui constituera un journal d'audit des modifications de confidentialité, structuré sous l'identifiant unique de l'utilisateur, et incluant les nouveaux paramètres de confidentialité et l'horodatage. Lorsqu'un utilisateur met à jour ses paramètres de confidentialité, effectuez deux écritures, une dans les paramètres de confidentialité de l'utilisateur et une dans le journal d'audit. Il est important d'en faire une section distincte afin que vous puissiez créer des règles de sécurité plus restrictives. Pour les utilisateurs de Firestore, assurez-vous que les documents du journal d'audit ne soient pas modifiables à l'aide de règles granulaires :

match /audit_log/{uid} {
   allow create: if uid = request.auth.uid;
   allow update: if false;
   allow delete: if false;
 }

Avec ces quatre étapes, comprendre vos données, collecter vos préférences, stocker vos préférences et suivre les modifications, il est simple de vous assurer que votre application respecte la confidentialité de vos utilisateurs.