Armazenar configurações de privacidade com o Firebase

O Firebase facilita a coleta e o rastreamento das preferências dos usuários em relação à coleta e processamento de dados:

  1. Definir configurações de privacidade
  2. Atualize seu aplicativo para usar as configurações de privacidade
  3. Rastreie alterações nas configurações de privacidade

Definir configurações de privacidade

Para coletar e armazenar configurações de privacidade, você precisará de duas coisas: uma interface de usuário para solicitar aos usuários suas configurações de privacidade e uma maneira de armazenar essas configurações.

Criando uma IU de configurações de privacidade

O formato de uma IU de configurações de privacidade depende de você. Aqui estão algumas coisas em que você deve pensar enquanto cria sua IU:

Entenda os dados que você coleta

Reserve algum tempo para catalogar os dados do usuário que seu aplicativo armazena ou processa. Certifique-se de incluir dados que seu aplicativo coleta diretamente e dados coletados pelos serviços que seu aplicativo usa. Para serviços do Firebase, pode ser útil verificar os exemplos de dados do usuário final processados ​​pelo Firebase .

Projete sua UI para ajudar os usuários

Tente descrever os tipos de dados que você coleta em termos concisos e fáceis de usar, incluindo como os dados coletados ajudam seu aplicativo ou serão usados.

Se houver determinados dados de que seu aplicativo precisa para funcionar corretamente, você poderá evitar erros desativando o botão de envio em sua IU até que um usuário selecione as opções necessárias para que seu aplicativo funcione. Pense em qual deve ser o fluxo do seu aplicativo para usuários que permitem alguns tipos de coleta de dados e outros não.

Botão enviar desativado até que o usuário concorde com a política de privacidade Botão enviar desativado até que o usuário concorde com a política de privacidade

Armazenando configurações de privacidade

Onde e como você armazena as configurações de privacidade dos seus usuários também depende de você. Você pode usar qualquer identificador confiável que possa associar um usuário às seleções que ele faz na interface de usuário das configurações de privacidade.

Uma abordagem comum é usar o identificador como uma chave para armazenar preferências no armazenamento de dados que você usa no seu aplicativo. Por exemplo, você pode usar UIDs do Firebase Auth como chave em uma instância do Realtime Database ou usar um ID de instância do Firebase para organizar coleções de documentos do Firestore.

Exemplo: Armazenando preferências do usuário com UIDs de autenticação e Realtime Database

Considere um aplicativo de mídia social que usa UIDs do Firebase Auth e Firebase Realtime Database para armazenar as preferências do usuário.

Para garantir que os dados dos usuários permaneçam seguros e privados, o aplicativo salva suas preferências em uma parte separada do banco de dados com regras de segurança restritivas que permitem apenas que o usuário leia ou escreva. O aplicativo também valida que os valores esperados são apenas booleanos e que não aceita 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"
    }
  }
}

Atualize seu aplicativo para usar as configurações de privacidade

Depois de ter as configurações de privacidade dos usuários disponíveis em seu aplicativo, você poderá ativar recursos específicos para usuários que ativaram configurações específicas. Faça com que seu aplicativo verifique as configurações antes de carregar recursos que coletam dados ou usam dados coletados. No caso de um recurso, pense em qual seria a melhor experiência sem esse recurso. Por exemplo, se o aplicativo for uma plataforma de microblog e um usuário tiver desabilitado o aplicativo para armazenar suas postagens, a melhor experiência do usuário pode ser remover a opção de criar uma postagem.

Rastreie alterações nas configurações de privacidade

Depois que um usuário concede permissão para coletar dados, ele pode mudar de ideia. Adicione um botão ou link ao seu perfil ou tela de configurações onde eles podem atualizar suas configurações de privacidade.

O O link "Configurações de privacidade" abre a caixa de diálogo de configurações para permitir que os usuários atualizem suas configurações

Você também pode decidir como seu aplicativo deve agir quando um usuário decidir desabilitar a coleta de dados. Por exemplo, você pode oferecer ao usuário a opção de excluir os dados coletados ou fazê-lo automaticamente. Considere usar o Cloud Functions for Firebase para excluir os dados, pois, dependendo da quantidade de dados que precisam ser excluídos, a operação pode demorar alguns minutos. Consulte o guia para remover e exportar dados do usuário para saber mais sobre isso.

Armazene um registro de auditoria das configurações de privacidade dos seus usuários separadamente

Alguns desenvolvedores de aplicativos podem querer manter um registro das alterações nas configurações de privacidade. Isso pode ser feito usando o Realtime Database ou o Firestore criando uma nova seção do banco de dados para ser um registro de auditoria de alterações de privacidade, estruturado sob o identificador exclusivo do usuário e incluindo as novas configurações de privacidade e carimbo de data/hora. Quando um usuário atualiza suas configurações de privacidade, faça duas gravações, uma nas configurações de privacidade do usuário e outra no log de auditoria. É importante tornar esta seção separada para que você possa criar regras de segurança mais restritivas. Para usuários do Firestore, imponha que os documentos no registro de auditoria não sejam editáveis ​​usando regras granulares:

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

Com essas quatro etapas, compreender seus dados, coletar preferências, armazenar preferências e rastrear alterações, é simples garantir que seu aplicativo respeite a privacidade dos usuários. , o Firebase simplifica a coleta e o rastreamento das preferências dos usuários em relação à coleta e ao processamento de dados:

  1. Definir configurações de privacidade
  2. Atualize seu aplicativo para usar as configurações de privacidade
  3. Rastreie alterações nas configurações de privacidade

Definir configurações de privacidade

Para coletar e armazenar configurações de privacidade, você precisará de duas coisas: uma interface de usuário para solicitar aos usuários suas configurações de privacidade e uma maneira de armazenar essas configurações.

Criando uma IU de configurações de privacidade

O formato de uma IU de configurações de privacidade depende de você. Aqui estão algumas coisas em que você deve pensar enquanto cria sua IU:

Entenda os dados que você coleta

Reserve algum tempo para catalogar os dados do usuário que seu aplicativo armazena ou processa. Certifique-se de incluir dados que seu aplicativo coleta diretamente e dados coletados pelos serviços que seu aplicativo usa. Para serviços do Firebase, pode ser útil verificar os exemplos de dados do usuário final processados ​​pelo Firebase .

Projete sua UI para ajudar os usuários

Tente descrever os tipos de dados que você coleta em termos concisos e fáceis de usar, incluindo como os dados coletados ajudam seu aplicativo ou serão usados.

Se houver determinados dados de que seu aplicativo precisa para funcionar corretamente, você poderá evitar erros desativando o botão de envio em sua IU até que um usuário selecione as opções necessárias para que seu aplicativo funcione. Pense em qual deve ser o fluxo do seu aplicativo para usuários que permitem alguns tipos de coleta de dados e outros não.

Botão enviar desativado até que o usuário concorde com a política de privacidade Botão enviar desativado até que o usuário concorde com a política de privacidade

Armazenando configurações de privacidade

Onde e como você armazena as configurações de privacidade dos seus usuários também depende de você. Você pode usar qualquer identificador confiável que possa associar um usuário às seleções que ele faz na interface de usuário das configurações de privacidade.

Uma abordagem comum é usar o identificador como uma chave para armazenar preferências no armazenamento de dados que você usa no seu aplicativo. Por exemplo, você pode usar UIDs do Firebase Auth como chave em uma instância do Realtime Database ou usar um ID de instância do Firebase para organizar coleções de documentos do Firestore.

Exemplo: Armazenando preferências do usuário com UIDs de autenticação e Realtime Database

Considere um aplicativo de mídia social que usa UIDs do Firebase Auth e Firebase Realtime Database para armazenar as preferências do usuário.

Para garantir que os dados dos usuários permaneçam seguros e privados, o aplicativo salva suas preferências em uma parte separada do banco de dados com regras de segurança restritivas que permitem apenas que o usuário leia ou escreva. O aplicativo também valida que os valores esperados são apenas booleanos e que não aceita 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"
    }
  }
}

Atualize seu aplicativo para usar as configurações de privacidade

Depois de ter as configurações de privacidade dos usuários disponíveis em seu aplicativo, você poderá ativar recursos específicos para usuários que ativaram configurações específicas. Faça com que seu aplicativo verifique as configurações antes de carregar recursos que coletam dados ou usam dados coletados. No caso de um recurso, pense em qual seria a melhor experiência sem esse recurso. Por exemplo, se o aplicativo for uma plataforma de microblog e um usuário tiver desabilitado o aplicativo para armazenar suas postagens, a melhor experiência do usuário pode ser remover a opção de criar uma postagem.

Rastreie alterações nas configurações de privacidade

Depois que um usuário concede permissão para coletar dados, ele pode mudar de ideia. Adicione um botão ou link ao seu perfil ou tela de configurações onde eles podem atualizar suas configurações de privacidade.

O O link "Configurações de privacidade" abre a caixa de diálogo de configurações para permitir que os usuários atualizem suas configurações

Você também pode decidir como seu aplicativo deve agir quando um usuário decidir desabilitar a coleta de dados. Por exemplo, você pode oferecer ao usuário a opção de excluir os dados coletados ou fazê-lo automaticamente. Considere usar o Cloud Functions for Firebase para excluir os dados, pois, dependendo da quantidade de dados que precisam ser excluídos, a operação pode demorar alguns minutos. Consulte o guia para remover e exportar dados do usuário para saber mais sobre isso.

Armazene um registro de auditoria das configurações de privacidade dos seus usuários separadamente

Alguns desenvolvedores de aplicativos podem querer manter um registro das alterações nas configurações de privacidade. Isso pode ser feito usando o Realtime Database ou o Firestore criando uma nova seção do banco de dados para ser um registro de auditoria de alterações de privacidade, estruturado sob o identificador exclusivo do usuário e incluindo as novas configurações de privacidade e carimbo de data/hora. Quando um usuário atualiza suas configurações de privacidade, faça duas gravações, uma nas configurações de privacidade do usuário e outra no log de auditoria. É importante tornar esta seção separada para que você possa criar regras de segurança mais restritivas. Para usuários do Firestore, imponha que os documentos no registro de auditoria não sejam editáveis ​​usando regras granulares:

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

Com essas quatro etapas, compreender seus dados, coletar preferências, armazenar preferências e rastrear alterações, é simples garantir que seu aplicativo respeite a privacidade dos usuários.