Como armazenar configurações de privacidade com o Firebase

Com o Firebase, fica mais fácil reunir e rastrear as preferências dos usuários por meio da coleta e do processamento de dados:

  1. Defina configurações de privacidade.
  2. Atualize o app para usar as configurações privacidade.
  3. Rastreie alterações nas configurações de privacidade

Defina configurações de privacidade.

Para coletar e armazenar as configurações de privacidade, você vai precisar de dois recursos: uma IU para solicitar aos usuários o acesso às configurações de privacidade deles e uma maneira de armazenar essas configurações.

Como criar uma IU de configurações de privacidade

Cabe a você definir o formato da IU de configurações de privacidade. Veja aqui alguns fatores para considerar ao criar sua IU:

Entender os dados coletados

Reserve algum tempo para catalogar os dados do usuário que seu app armazena ou processa. Não se esqueça de incluir os dados que seu app coleta diretamente e os dados coletados pelos serviços que seu app usa. Para os serviços do Firebase, pode ser útil verificar os exemplos de dados de usuários finais processados pelo Firebase.

Projetar sua IU para ajudar os usuários

Tente descrever os tipos de dados coletados de maneira simples e fácil de entender, incluindo como os dados coletados ajudam seu app ou como eles serão usados.

Caso haja dados de que seu app precise para funcionar corretamente, desative o botão "Enviar" na sua IU para evitar erros até que um usuário selecione as opções necessárias para seu app funcionar. Pense em como o fluxo do seu app deveria ser para os usuários que ativam alguns tipos de coleta de dados e não outros.

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

Como armazenar as configurações de privacidade

Também cabe a você definir onde e como armazenar as configurações de privacidade dos seus usuários. Você pode usar qualquer identificador confiável capaz de associar um usuário às seleções feitas na interface de usuário de 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 app. Por exemplo, é possível usar UIDs do Firebase Authentication como uma chave em uma instância do Realtime Database ou um ID de instância do Firebase para organizar coleções de documentos do Firestore.

Exemplo: como armazenar as preferências do usuário com UIDs do Authentication e do Realtime Database

Pense em um app de mídia social que usa os UIDs do Firebase Authentication e o Firebase Realtime Database para armazenar as preferências do usuário.

Para garantir que os dados do usuário permaneçam seguros e privados, o app salva as preferências deles em uma parte separada do banco de dados com regras de segurança rigorosas que concedem permissão de leitura e gravação apenas a esse usuário. O app também garante que os valores esperados sejam apenas booleanos. Valores inesperados não são aceitos:

"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 o app para usar as configurações privacidade.

Depois que você tiver as configurações de privacidade dos usuários disponíveis no seu app, poderá ativar recursos específicos para usuários que ativaram configurações específicas. Faça com que seu app verifique as configurações antes de carregar recursos que coletam dados ou usam dados coletados. No caso de um recurso, analise como alcançar a melhor experiência sem esse recurso. Por exemplo, se o app for uma plataforma de microblogs e um usuário tiver desativado o armazenamento de postagens no app, uma maneira de os usuários terem a melhor experiência seria remover a opção de criação de postagens.

Rastrear as alterações nas configurações de privacidade

Depois que um usuário conceder permissão para a coleta dados, ele poderá mudar de ideia. Adicione um botão ou link ao seu perfil ou tela de configuração que ele possa usar na atualização das próprias configurações de privacidade.

O link "Configurações de privacidade" mostra a caixa de diálogo de configurações para permitir que os usuários atualizem as próprias configurações O link "Configurações de privacidade" exibe a caixa de diálogo de configurações para que os usuários façam as devidas atualizações

Também é possível decidir como o app deve se comportar quando um usuário decide desativar a coleta de dados. Por exemplo, você pode oferecer ao usuário a opção de excluir os dados coletados ou fazer isso automaticamente. Use o Cloud Functions para Firebase para excluir os dados, já que, dependendo da quantidade de dados a ser excluída, a operação pode levar alguns minutos. Para saber mais sobre isso, consulte o guia sobre como remover e exportar os dados do usuário.

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

Alguns desenvolvedores de apps podem querer manter um registro das alterações realizadas nas configurações de privacidade. É possível fazer isso ao usar Realtime Database ou o Firestore para criar uma nova seção do banco de dados que será um registro de auditoria das alterações de privacidade, estruturado de acordo com o identificador exclusivo do usuário e que inclui as novas configurações de privacidade e o carimbo de data/hora. Quando um usuário atualiza as próprias configurações de privacidade, você faz duas gravações, uma nas configurações de privacidade do usuário e outra no registro de auditoria. É importante que essa seja uma seção separada. Dessa forma, você pode criar regras de segurança mais rigorosas. Para usuários do Firestore, configure os documentos no registro de auditoria como não editáveis. Para isso, use regras detalhadas:

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

Com as quatro etapas que envolvem compreensão dos dados, coleta e armazenamento de preferências e rastreamento de alterações, fica fácil garantir que seu app respeite a privacidade dos usuários.