Menyimpan setelan privasi dengan Firebase

Firebase memudahkan pengumpulan dan pelacakan preferensi pengguna seputar pengumpulan dan pemrosesan data:

  1. Menyiapkan setelan privasi
  2. Mengupdate aplikasi untuk menggunakan setelan privasi
  3. Melacak perubahan pada setelan privasi

Menyiapkan setelan privasi

Anda memerlukan dua hal untuk mengumpulkan dan menyimpan setelan privasi: UI untuk meminta setelan privasi pengguna dan cara menyimpan setelan tersebut.

Membuat UI setelan privasi

Anda yang menentukan format UI setelan privasi. Berikut ini beberapa hal yang perlu diperhatikan saat membuat UI:

Memahami data yang Anda kumpulkan

Luangkan waktu untuk membuat katalog data pengguna yang disimpan atau diproses oleh aplikasi Anda. Pastikan untuk menyertakan data yang dikumpulkan secara langsung oleh aplikasi, dan data yang dikumpulkan oleh layanan yang digunakan aplikasi tersebut. Untuk layanan Firebase, sebaiknya periksa contoh data pengguna akhir yang diproses oleh Firebase.

Merancang UI untuk membantu pengguna

Cobalah untuk mendeskripsikan jenis data yang Anda kumpulkan dalam istilah yang ringkas dan mudah dimengerti oleh pengguna, termasuk bagaimana data yang dikumpulkan dapat membantu aplikasi atau bagaimana data akan digunakan.

Jika ada data tertentu yang diperlukan aplikasi Anda untuk berfungsi dengan benar, Anda dapat menghindari error dengan menonaktifkan tombol kirim di UI, hingga pengguna memilih opsi yang diperlukan agar aplikasi tersebut berfungsi. Pertimbangkan bagaimana sebaiknya alur aplikasi Anda berjalan bagi pengguna yang mengaktifkan beberapa jenis pengumpulan data, dan bukan yang lain.

Tombol kirim dinonaktifkan hingga pengguna menyetujui kebijakan privasi Tombol kirim dinonaktifkan hingga pengguna menyetujui kebijakan privasi

Menyimpan setelan privasi

Lokasi dan cara menyimpan setelan privasi pengguna juga ditentukan oleh Anda sendiri. Anda dapat menggunakan ID apa pun yang andal, yang dapat mengaitkan pengguna dengan pilihan yang mereka buat pada UI setelan privasi.

Salah satu pendekatan yang umum adalah menggunakan ID sebagai kunci untuk menyimpan preferensi di penyimpanan data yang Anda gunakan di aplikasi. Misalnya, Anda dapat menggunakan UID Firebase Auth sebagai kunci dalam instance Realtime Database atau menggunakan ID Instance Firebase untuk mengatur koleksi dokumen Firestore.

Contoh: Menyimpan preferensi pengguna dengan UID Auth dan Realtime Database

Ambil contoh sebuah aplikasi media sosial yang menggunakan UID Firebase Auth dan Firebase Realtime Database untuk menyimpan preferensi pengguna.

Untuk memastikan bahwa data pengguna tetap aman dan dirahasiakan, aplikasi menyimpan preferensi mereka ke bagian database yang terpisah dengan aturan keamanan yang ketat, yang hanya memungkinkan pengguna tersebut untuk membaca atau menulis. Aplikasi ini juga memvalidasi bahwa nilai yang diharapkan hanya boolean, dan tidak menerima nilai yang tidak terduga:

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

Mengupdate aplikasi untuk menggunakan setelan privasi

Setelah setelan privasi pengguna tersedia di aplikasi, Anda dapat mengaktifkan fitur tertentu untuk pengguna yang mengaktifkan setelan tertentu. Buat agar aplikasi Anda memeriksa setelan, sebelum memuat fitur yang mengumpulkan data atau menggunakan data yang dikumpulkan. Jika berhubungan dengan suatu fitur, pertimbangkan tentang pengalaman terbaik yang dapat diberikan tanpa fitur tersebut. Misalnya, jika aplikasi adalah platform mikroblog dan pengguna telah menonaktifkan aplikasi agar tidak menyimpan postingan mereka, pengalaman terbaik yang mungkin dapat dinikmati pengguna adalah menghapus opsi pembuatan postingan.

Melacak perubahan pada setelan privasi

Setelah pengguna memberikan izin untuk mengumpulkan data, mereka bisa saja berubah pikiran. Pada layar profil atau setelan Anda, tambahkan tombol atau link yang dapat mereka gunakan untuk memperbarui setelan privasi.

The Link "Privacy settings" menampilkan kotak dialog setelan yang dapat digunakan pengguna untuk memperbarui setelan privasi

Anda juga dapat menentukan cara aplikasi melakukan penanganan saat pengguna memutuskan untuk menonaktifkan pengumpulan data. Misalnya, Anda dapat menawarkan opsi kepada pengguna untuk menghapus data yang dikumpulkan atau melakukannya secara otomatis. Sebaiknya gunakan Cloud Functions for Firebase untuk menghapus data, karena operasi ini mungkin memerlukan waktu beberapa menit, bergantung pada jumlah data yang perlu dihapus. Untuk mengetahui informasi lebih lanjut tentang hal ini, lihat panduan menghapus dan mengekspor data pengguna.

Menyimpan log audit setelan privasi pengguna secara terpisah

Beberapa developer aplikasi mungkin ingin menyimpan data perubahan pada setelan privasi. Hal ini dapat dilakukan menggunakan Realtime Database atau Firestore dengan membuat bagian baru database menjadi log audit perubahan privasi, yang terstruktur berdasarkan ID unik pengguna, serta termasuk stempel waktu dan setelan privasi baru. Ketika pengguna memperbarui setelan privasinya, buat dua penulisan: satu untuk setelan privasi pengguna dan satu lagi untuk log audit. Penting untuk menjadikan hal ini sebagai bagian terpisah, sehingga Anda dapat membuat Aturan Keamanan yang lebih ketat. Untuk pengguna Firestore, terapkan bahwa dokumen pada log audit tidak dapat diedit menggunakan aturan terperinci:

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

Dengan keempat langkah di atas, yaitu memahami data Anda, mengumpulkan preferensi, menyimpan preferensi, dan melacak perubahan, dapat dipastikan aplikasi Anda melindungi privasi pengguna.