Menambahkan fungsi untuk menghapus dan mengekspor data pengguna

Agar Anda dapat membantu pengguna mengontrol data mereka, tim Firebase telah membuat library untuk menyederhanakan 2 proses data pengguna umum:

  • clearData: menghapus data pengguna dari layanan Firebase ketika mereka menghapus akunnya melalui Firebase Authentication.

  • exportData: menyimpan salinan data pengguna dari layanan Firebase ke string JSON dan menguploadnya ke Cloud Storage sehingga mereka dapat dengan mudah mendownloadnya sendiri.

Baca selengkapnya di bawah untuk mengetahui cara menambahkan fungsi ke aplikasi Anda, atau langsung ke kodenya di repo GitHub privasi pengguna Firebase.

Menambahkan clearData atau exportData ke aplikasi Anda

Fungsi clearData dan exportData di library diimplementasikan sebagai Cloud Functions yang beroperasi pada data di dalam Realtime Database, Cloud Storage, dan Cloud Firestore. Proses untuk menambahkan fungsi di aplikasi Anda terdiri dari tiga langkah:

  1. Edit file user_privacy.json library sesuai dengan skema Realtime Database, Cloud Firestore, dan Cloud Storage aplikasi Anda.
  2. Terapkan clearData dan exportData sebagai Cloud Functions.
  3. Implementasikan pemicu fungsi tersebut di aplikasi Anda.
  4. Amankan data clearData dengan aturan penyimpanan.

Mengedit file user_privacy.json library

Untuk memulai, clone atau download repo GitHub privasi pengguna Firebase.

Setelah selesai melakukannya, buka functions/user_privacy.json di editor teks. File json itu berisi serangkaian lokasi yang dapat disesuaikan dan digunakan oleh fungsi clearData dan exportData untuk menemukan data aplikasi Anda dalam Realtime Database, Cloud Firestore, dan Cloud Storage. Jika aplikasi Anda hanya menggunakan 1 atau 2 layanan tersebut, mulailah dengan menghapus objek JSON yang terkait dengan layanan yang tidak digunakan.

Setelah objek dihapus, Anda bisa mulai mengganti nilai placeholder layanan yang tersisa dengan struktur data sebenarnya yang digunakan aplikasi Anda.

Menambahkan lokasi Realtime Database ke data pengguna

Guna menyesuaikan user_privacy.json untuk instance Realtime Database aplikasi Anda, ganti daftar string placeholder di "database" dengan lokasi sebenarnya ke data pengguna:

...
  "database": {
    "clear": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ],
    "export": [
      "/users/UID_VARIABLE",    // Replace with your
      "/admins/UID_VARIABLE"    // actual RTDB paths
    ]
  },
...

Jika Anda hanya ingin menambahkan salah satu fungsi ke aplikasi, Anda dapat menghapus objek fungsi lain, daripada mengisinya dengan data Anda.

Menambahkan objek Cloud Firestore yang berisi data pengguna

Guna menyesuaikan user_privacy.json untuk instance Cloud Firestore aplikasi, ganti daftar objek placeholder di "firestore" dengan objek Cloud Firestore sebenarnya yang berisi data pengguna:

...
  "firestore": {
    "clear": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ],
    "export": [
      {"collection": "users", "doc": "UID_VARIABLE", "field": "name"},
      {"collection": "users", "doc": "UID_VARIABLE"},    // Replace with your
      {"collection": "admins", "doc": "UID_VARIABLE"}    // actual Firestore paths
    ]
  },
...

Jika Anda hanya ingin menambahkan salah satu fungsi ke aplikasi, Anda dapat menghapus objek fungsi lain, daripada mengisinya dengan data Anda.

Menambahkan bucket Cloud Storage dan nama file dengan data pengguna

Guna menyesuaikan user_privacy.json untuk instance Cloud Storage aplikasi Anda, ganti bucket penyimpanan placeholder dan nama file di "storage" dengan nilai sebenarnya:

...
  "storage": {
    "clear": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"],
      ["clear-exportappspot.com", "UID_VARIABLE"]
    ],
    "export": [    // Replace with your actual storage data
      ["clear-export.appspot.com", "UID_VARIABLE/sample_data.json"]
    ]
  },
...

Jika Anda hanya ingin menambahkan salah satu fungsi ke aplikasi, Anda dapat menghapus objek fungsi lain, daripada mengisinya dengan data Anda.

Menerapkan clearData dan exportData sebagai Cloud Functions

Jika Anda belum memahami Cloud Functions, baca cara menggunakannya dalam Panduan Memulai Cloud Functions.

Setelah puas dengan Cloud Functions, tambahkan fungsi clearData dan exportData ke project Anda:

  1. Salin user_data.json yang sudah disesuaikan ke direktori functions Anda.
  2. Salin kode dari index.js library privasi pengguna ke index.js project Anda.
    • Jika Anda tidak menggunakan clearData, hapus fungsi clearData, clearDatabaseData, clearFirestoreData, dan clearStorageData.
    • Jika Anda tidak menggunakan exportData, hapus fungsi exportData, exportDatabaseData, exportFirestoreData, dan exportStorageData.
  3. Terapkan fungsi Anda:

Menerapkan pemicu untuk clearData dan exportData

Setiap fungsi memerlukan pemicu yang berbeda:

  • clearData: dipicu ketika pengguna menghapus akun mereka melalui Authentication.
  • exportData: dipicu oleh permintaan HTTP.

Menerapkan pemicu clearData

Untuk memicu peristiwa clearData, Anda perlu menggunakan metode dari Authentication. Jika Anda belum melakukannya, tambahkan Authentication ke aplikasi Anda: iOS, Android, atau web.

Kemudian, tambahkan cara untuk mengaktifkan metode delete dari Authentication SDK untuk platform Anda:

iOS

FirebaseAuth.User.delete { error in
  if let error = error {
    print("Error deleting user: \(error)")
  }
}

Android

FirebaseAuth.getCurrentUser().delete();

Web

firebase.auth().currentUser.delete().catch(functions(error) {if (error.code === 'auth/require-recent-login') {window.alert('Harap login dan coba lagi.'); firebase.auth().signOut(); } });

Menerapkan pemicu exportData

Untuk menerapkan pemicu exportData, tambahkan tombol atau link ke aplikasi Anda yang mengaktifkan fungsi melalui permintaan HTTP. Baca selengkapnya mengenai cara mengaktifkan fungsi melalui HTTP di bagian Memanggil fungsi melalui permintaan HTTP.

Detail Permintaan:

  • Type: POST
  • URL: https://us-central1-<var>PROJECT-ID<.var>.cloudfunctions.net/exportData
  • Body: <var>CURRENT_USER'S_UID</var>

Mengaktifkan fungsi secara langsung di Firebase Hosting

Jika aplikasi Anda berupa aplikasi web yang dihosting di Firebase Hosting, Anda dapat mengaktifkan fungsi clearData melalui entri rewrite di file firebase.json situs tersebut:

  "hosting": {
    "rewrites": [
       {"source": "/exportData", "function": "exportData"}
    ]
  }

Mengamankan data exportData dengan aturan penyimpanan

Untuk menjaga kerahasiaan data pengguna yang diekspor, tambahkan aturan Cloud Storage yang membatasi akses ke pengguna pengekspor.

  1. Buka Storage di Firebase console.
  2. Buka tab Aturan.
  3. Tempel aturan berikut, lalu klik Publikasikan:
service firebase.storage {
  match /b/{bucket}/o {
    match /exportData {
      // Only allow access to the user who requested the export
      match /{uid} {
        allow read, write: if request.auth.uid == uid
      }
      match /{uid}/{path=**} {
        allow read, write: if request.auth.uid == uid
      }
    }
    // Other application rules...
  }
}

Kirim masukan tentang...

Butuh bantuan? Kunjungi halaman dukungan kami.