Almacenamiento de la configuración de privacidad con Firebase

Firebase facilita la recopilación y el seguimiento de las preferencias de los usuarios en cuanto a la recopilación y el procesamiento de datos:

  1. Configurar la configuración de privacidad
  2. Actualice su aplicación para usar la configuración de privacidad
  3. Seguimiento de cambios en la configuración de privacidad

Configurar la configuración de privacidad

Para recopilar y almacenar configuraciones de privacidad, necesitará dos cosas: una interfaz de usuario para solicitar a los usuarios sus configuraciones de privacidad y una forma de almacenar esas configuraciones.

Crear una interfaz de usuario de configuración de privacidad

El formato de la interfaz de usuario de configuración de privacidad depende de usted. Aquí hay algunas cosas en las que pensar mientras crea su interfaz de usuario:

Comprenda los datos que recopila

Tómate un tiempo para catalogar los datos de usuario que tu aplicación almacena o procesa. Asegúrese de incluir datos que su aplicación recopila directamente y datos recopilados por los servicios que utiliza su aplicación. Para los servicios de Firebase, puede resultar útil consultar los ejemplos de datos de usuario final procesados ​​por Firebase .

Diseñe su interfaz de usuario para ayudar a los usuarios

Intente describir los tipos de datos que recopila en términos concisos y fáciles de usar, incluido cómo los datos recopilados ayudan a su aplicación o se utilizarán.

Si hay ciertos datos que su aplicación necesita para funcionar correctamente, puede evitar errores desactivando el botón de envío en su interfaz de usuario hasta que un usuario seleccione las opciones necesarias para que su aplicación funcione. Piense en cuál debería ser el flujo de su aplicación para los usuarios que permiten algunos tipos de recopilación de datos y otros no.

Botón Enviar deshabilitado hasta que el usuario acepte la política de privacidad Botón Enviar deshabilitado hasta que el usuario acepte la política de privacidad

Almacenamiento de configuraciones de privacidad

Dónde y cómo almacenas la configuración de privacidad de tus usuarios también depende de ti. Puede utilizar cualquier identificador confiable que pueda asociar a un usuario con las selecciones que realiza en su interfaz de usuario de configuración de privacidad.

Un enfoque común es utilizar el identificador como clave para almacenar las preferencias en el almacén de datos que utiliza en su aplicación. Por ejemplo, podrías usar los UID de autenticación de Firebase como clave en una instancia de Realtime Database o usar un ID de instancia de Firebase para organizar colecciones de documentos de Firestore.

Ejemplo: almacenar las preferencias del usuario con UID de autenticación y base de datos en tiempo real

Considere una aplicación de redes sociales que utilice los UID de autenticación de Firebase y la base de datos en tiempo real de Firebase para almacenar las preferencias del usuario.

Para garantizar que los datos de los usuarios permanezcan seguros y privados, la aplicación guarda sus preferencias en una parte separada de la base de datos con reglas de seguridad restrictivas que solo permiten a ese usuario leer o escribir. La aplicación también valida que los valores esperados sean solo booleanos y que no acepte valores inesperados:

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

Actualice su aplicación para usar la configuración de privacidad

Una vez que tenga la configuración de privacidad de los usuarios disponible en su aplicación, puede activar funciones específicas para los usuarios que habilitaron configuraciones específicas. Haga que su aplicación verifique la configuración antes de cargar funciones que recopilen datos o utilicen datos recopilados. En el caso de una función, piense cuál sería la mejor experiencia sin esa función. Por ejemplo, si la aplicación es una plataforma de microblogging y un usuario ha desactivado que la aplicación almacene sus publicaciones, la mejor experiencia de usuario puede ser eliminar la opción de crear una publicación.

Seguimiento de cambios en la configuración de privacidad

Después de que un usuario otorga permiso para recopilar datos, podría cambiar de opinión. Agregue un botón o enlace a su perfil o pantalla de configuración donde puedan actualizar su configuración de privacidad.

El El enlace "Configuración de privacidad" abre el cuadro de diálogo de configuración para permitir a los usuarios actualizar su configuración.

También puede decidir cómo debe manejarse su aplicación cuando un usuario decide deshabilitar la recopilación de datos. Por ejemplo, puedes ofrecer al usuario la opción de eliminar los datos recopilados o hacerlo de forma automática. Considere utilizar Cloud Functions para Firebase para eliminar los datos, ya que, dependiendo de la cantidad de datos que deban eliminarse, la operación podría tardar unos minutos. Consulte la guía para eliminar y exportar datos de usuario para obtener más información al respecto.

Almacene un registro de auditoría de la configuración de privacidad de sus usuarios por separado

Es posible que algunos desarrolladores de aplicaciones deseen mantener un registro de los cambios en la configuración de privacidad. Esto se puede hacer usando Realtime Database o Firestore creando una nueva sección de la base de datos para que sea un registro de auditoría de los cambios de privacidad, estructurado bajo el identificador único del usuario e incluyendo la nueva configuración de privacidad y marca de tiempo. Cuando un usuario actualiza su configuración de privacidad, realice dos escrituras, una en la configuración de privacidad del usuario y otra en el registro de auditoría. Es importante crear una sección separada para que pueda crear reglas de seguridad más restrictivas. Para los usuarios de Firestore, haga cumplir que los documentos en el registro de auditoría no sean editables mediante reglas granulares:

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

Con esos cuatro pasos, comprender sus datos, recopilar preferencias, almacenar preferencias y rastrear cambios, es sencillo asegurarse de que su aplicación respete la privacidad de sus usuarios. , Firebase facilita la recopilación y el seguimiento de las preferencias de los usuarios en cuanto a la recopilación y el procesamiento de datos:

  1. Configurar la configuración de privacidad
  2. Actualice su aplicación para usar la configuración de privacidad
  3. Seguimiento de cambios en la configuración de privacidad

Configurar la configuración de privacidad

Para recopilar y almacenar configuraciones de privacidad, necesitará dos cosas: una interfaz de usuario para solicitar a los usuarios sus configuraciones de privacidad y una forma de almacenar esas configuraciones.

Crear una interfaz de usuario de configuración de privacidad

El formato de la interfaz de usuario de configuración de privacidad depende de usted. Aquí hay algunas cosas en las que pensar mientras crea su interfaz de usuario:

Comprenda los datos que recopila

Tómate un tiempo para catalogar los datos de usuario que tu aplicación almacena o procesa. Asegúrese de incluir datos que su aplicación recopila directamente y datos recopilados por los servicios que utiliza su aplicación. Para los servicios de Firebase, puede resultar útil consultar los ejemplos de datos de usuario final procesados ​​por Firebase .

Diseñe su interfaz de usuario para ayudar a los usuarios

Intente describir los tipos de datos que recopila en términos concisos y fáciles de usar, incluido cómo los datos recopilados ayudan a su aplicación o se utilizarán.

Si hay ciertos datos que su aplicación necesita para funcionar correctamente, puede evitar errores desactivando el botón de envío en su interfaz de usuario hasta que un usuario seleccione las opciones necesarias para que su aplicación funcione. Piense en cuál debería ser el flujo de su aplicación para los usuarios que permiten algunos tipos de recopilación de datos y otros no.

Botón Enviar deshabilitado hasta que el usuario acepte la política de privacidad Botón Enviar deshabilitado hasta que el usuario acepte la política de privacidad

Almacenamiento de configuraciones de privacidad

Dónde y cómo almacenas la configuración de privacidad de tus usuarios también depende de ti. Puede utilizar cualquier identificador confiable que pueda asociar a un usuario con las selecciones que realiza en su interfaz de usuario de configuración de privacidad.

Un enfoque común es utilizar el identificador como clave para almacenar las preferencias en el almacén de datos que utiliza en su aplicación. Por ejemplo, podrías usar los UID de autenticación de Firebase como clave en una instancia de Realtime Database o usar un ID de instancia de Firebase para organizar colecciones de documentos de Firestore.

Ejemplo: almacenar las preferencias del usuario con UID de autenticación y base de datos en tiempo real

Considere una aplicación de redes sociales que utilice los UID de autenticación de Firebase y la base de datos en tiempo real de Firebase para almacenar las preferencias del usuario.

Para garantizar que los datos de los usuarios permanezcan seguros y privados, la aplicación guarda sus preferencias en una parte separada de la base de datos con reglas de seguridad restrictivas que solo permiten a ese usuario leer o escribir. La aplicación también valida que los valores esperados sean solo booleanos y que no acepte valores inesperados:

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

Actualice su aplicación para usar la configuración de privacidad

Una vez que tenga la configuración de privacidad de los usuarios disponible en su aplicación, puede activar funciones específicas para los usuarios que habilitaron configuraciones específicas. Haga que su aplicación verifique la configuración antes de cargar funciones que recopilen datos o utilicen datos recopilados. En el caso de una función, piense cuál sería la mejor experiencia sin esa función. Por ejemplo, si la aplicación es una plataforma de microblogging y un usuario ha desactivado que la aplicación almacene sus publicaciones, la mejor experiencia de usuario puede ser eliminar la opción de crear una publicación.

Seguimiento de cambios en la configuración de privacidad

Después de que un usuario otorga permiso para recopilar datos, podría cambiar de opinión. Agregue un botón o enlace a su perfil o pantalla de configuración donde puedan actualizar su configuración de privacidad.

El El enlace "Configuración de privacidad" abre el cuadro de diálogo de configuración para permitir a los usuarios actualizar su configuración.

También puede decidir cómo debe manejarse su aplicación cuando un usuario decide deshabilitar la recopilación de datos. Por ejemplo, puedes ofrecer al usuario la opción de eliminar los datos recopilados o hacerlo de forma automática. Considere utilizar Cloud Functions para Firebase para eliminar los datos, ya que, dependiendo de la cantidad de datos que deban eliminarse, la operación podría tardar unos minutos. Consulte la guía para eliminar y exportar datos de usuario para obtener más información al respecto.

Almacene un registro de auditoría de la configuración de privacidad de sus usuarios por separado

Es posible que algunos desarrolladores de aplicaciones deseen mantener un registro de los cambios en la configuración de privacidad. Esto se puede hacer usando Realtime Database o Firestore creando una nueva sección de la base de datos para que sea un registro de auditoría de los cambios de privacidad, estructurado bajo el identificador único del usuario e incluyendo la nueva configuración de privacidad y marca de tiempo. Cuando un usuario actualiza su configuración de privacidad, realice dos escrituras, una en la configuración de privacidad del usuario y otra en el registro de auditoría. Es importante crear una sección separada para que pueda crear reglas de seguridad más restrictivas. Para los usuarios de Firestore, haga cumplir que los documentos en el registro de auditoría no sean editables mediante reglas granulares:

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

Con esos cuatro pasos, comprender sus datos, recopilar preferencias, almacenar preferencias y rastrear cambios, es sencillo asegurarse de que su aplicación respete la privacidad de sus usuarios.