Lưu trữ cài đặt quyền riêng tư với Firebase

Firebase giúp việc thu thập và theo dõi các tùy chọn của người dùng xung quanh việc thu thập và xử lý dữ liệu trở nên đơn giản:

  1. Thiết lập cài đặt quyền riêng tư
  2. Cập nhật ứng dụng của bạn để sử dụng cài đặt quyền riêng tư
  3. Theo dõi các thay đổi trong cài đặt quyền riêng tư

Thiết lập cài đặt quyền riêng tư

Để thu thập và lưu trữ cài đặt quyền riêng tư, bạn sẽ cần hai thứ: Giao diện người dùng để nhắc người dùng về cài đặt quyền riêng tư của họ và cách lưu trữ các cài đặt đó.

Tạo giao diện người dùng cài đặt quyền riêng tư

Định dạng của giao diện người dùng cài đặt quyền riêng tư tùy thuộc vào bạn. Dưới đây là một số điều cần suy nghĩ khi bạn xây dựng giao diện người dùng của mình:

Hiểu dữ liệu bạn thu thập

Hãy dành chút thời gian để lập danh mục dữ liệu người dùng mà ứng dụng của bạn lưu trữ hoặc xử lý. Hãy nhớ bao gồm dữ liệu mà ứng dụng của bạn thu thập trực tiếp và dữ liệu được thu thập bởi các dịch vụ mà ứng dụng của bạn sử dụng. Đối với các dịch vụ Firebase, việc kiểm tra các ví dụ về dữ liệu người dùng cuối được Firebase xử lý có thể hữu ích.

Thiết kế giao diện người dùng của bạn để trợ giúp người dùng

Cố gắng mô tả các loại dữ liệu bạn thu thập bằng thuật ngữ ngắn gọn, thân thiện với người dùng, bao gồm cả cách dữ liệu được thu thập sẽ giúp ích cho ứng dụng của bạn hoặc sẽ được sử dụng như thế nào.

Nếu có dữ liệu nhất định mà ứng dụng của bạn cần để hoạt động bình thường, bạn có thể tránh lỗi bằng cách tắt nút gửi trên giao diện người dùng cho đến khi người dùng chọn các tùy chọn cần thiết để ứng dụng của bạn hoạt động. Hãy suy nghĩ về luồng ứng dụng của bạn sẽ dành cho những người dùng kích hoạt một số loại thu thập dữ liệu chứ không phải các loại thu thập dữ liệu khác.

Nút gửi bị vô hiệu hóa cho đến khi người dùng đồng ý với chính sách bảo mật Nút gửi bị vô hiệu hóa cho đến khi người dùng đồng ý với chính sách bảo mật

Lưu trữ cài đặt quyền riêng tư

Vị trí và cách bạn lưu trữ cài đặt quyền riêng tư của người dùng cũng tùy thuộc vào bạn. Bạn có thể sử dụng bất kỳ mã nhận dạng đáng tin cậy nào có thể liên kết người dùng với các lựa chọn mà họ thực hiện trong giao diện người dùng cài đặt quyền riêng tư của bạn.

Một cách tiếp cận phổ biến là sử dụng mã nhận dạng làm khóa để lưu trữ các tùy chọn trong kho dữ liệu mà bạn sử dụng trong ứng dụng của mình. Ví dụ: bạn có thể sử dụng UID xác thực Firebase làm khóa trong phiên bản Cơ sở dữ liệu thời gian thực hoặc sử dụng ID phiên bản Firebase để sắp xếp các bộ sưu tập tài liệu Firestore.

Ví dụ: Lưu trữ tùy chọn của người dùng bằng UID xác thực và Cơ sở dữ liệu thời gian thực

Hãy xem xét một ứng dụng truyền thông xã hội sử dụng UID xác thực Firebase và Cơ sở dữ liệu thời gian thực Firebase để lưu trữ tùy chọn của người dùng.

Để đảm bảo dữ liệu của người dùng luôn được bảo mật và riêng tư, ứng dụng sẽ lưu tùy chọn của họ vào một phần riêng biệt của cơ sở dữ liệu với các quy tắc bảo mật hạn chế chỉ cho phép người dùng đó đọc hoặc ghi. Ứng dụng cũng xác thực rằng các giá trị mong đợi chỉ là giá trị boolean và không chấp nhận các giá trị không mong muốn:

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

Cập nhật ứng dụng của bạn để sử dụng cài đặt quyền riêng tư

Sau khi có sẵn cài đặt quyền riêng tư của người dùng trong ứng dụng của mình, bạn có thể bật các tính năng cụ thể cho những người dùng đã bật cài đặt cụ thể. Yêu cầu ứng dụng của bạn kiểm tra cài đặt trước khi tải các tính năng thu thập dữ liệu hoặc sử dụng dữ liệu đã thu thập. Trong trường hợp có một tính năng, hãy nghĩ xem trải nghiệm tốt nhất sẽ ra sao nếu không có tính năng đó. Ví dụ: nếu ứng dụng là một nền tảng tiểu blog và người dùng đã vô hiệu hóa ứng dụng lưu trữ bài đăng của họ thì trải nghiệm tốt nhất của người dùng có thể là xóa tùy chọn tạo bài đăng.

Theo dõi các thay đổi trong cài đặt quyền riêng tư

Sau khi người dùng cấp quyền thu thập dữ liệu, họ có thể thay đổi quyết định. Thêm nút hoặc liên kết vào hồ sơ hoặc màn hình cài đặt của bạn, nơi họ có thể cập nhật cài đặt quyền riêng tư của mình.

Các Liên kết "Cài đặt quyền riêng tư" sẽ hiển thị hộp thoại cài đặt để cho phép người dùng cập nhật cài đặt của họ

Bạn cũng có thể quyết định cách xử lý ứng dụng của mình khi người dùng quyết định tắt tính năng thu thập dữ liệu. Ví dụ: bạn có thể cung cấp cho người dùng tùy chọn xóa dữ liệu đã thu thập hoặc thực hiện việc đó một cách tự động. Hãy cân nhắc sử dụng Cloud Functions cho Firebase để xóa dữ liệu, vì tùy thuộc vào lượng dữ liệu cần xóa, thao tác có thể mất vài phút. Xem hướng dẫn xóa và xuất dữ liệu người dùng để biết thêm về điều này.

Lưu trữ riêng nhật ký kiểm tra cài đặt quyền riêng tư của người dùng

Một số nhà phát triển ứng dụng có thể muốn lưu giữ hồ sơ về những thay đổi đối với cài đặt quyền riêng tư. Điều này có thể được thực hiện bằng Cơ sở dữ liệu thời gian thực hoặc Firestore bằng cách tạo một phần mới của cơ sở dữ liệu làm nhật ký kiểm tra các thay đổi về quyền riêng tư, được cấu trúc theo mã định danh duy nhất của người dùng và bao gồm các cài đặt quyền riêng tư và dấu thời gian mới. Khi người dùng cập nhật cài đặt quyền riêng tư của họ, hãy thực hiện hai lần ghi, một vào cài đặt quyền riêng tư của người dùng và một vào nhật ký kiểm tra. Điều quan trọng là phải biến phần này thành một phần riêng biệt để bạn có thể tạo các Quy tắc bảo mật hạn chế hơn. Đối với người dùng Firestore, hãy thực thi rằng các tài liệu trong nhật ký kiểm tra không thể chỉnh sửa được bằng các quy tắc chi tiết:

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

Với bốn bước đó, hiểu dữ liệu của bạn, thu thập tùy chọn, lưu trữ tùy chọn và theo dõi các thay đổi, thật dễ dàng để đảm bảo ứng dụng của bạn tôn trọng quyền riêng tư của người dùng. , Firebase giúp việc thu thập và theo dõi các tùy chọn của người dùng xung quanh việc thu thập và xử lý dữ liệu trở nên đơn giản:

  1. Thiết lập cài đặt quyền riêng tư
  2. Cập nhật ứng dụng của bạn để sử dụng cài đặt quyền riêng tư
  3. Theo dõi các thay đổi trong cài đặt quyền riêng tư

Thiết lập cài đặt quyền riêng tư

Để thu thập và lưu trữ cài đặt quyền riêng tư, bạn sẽ cần hai thứ: Giao diện người dùng để nhắc người dùng về cài đặt quyền riêng tư của họ và cách lưu trữ các cài đặt đó.

Tạo giao diện người dùng cài đặt quyền riêng tư

Định dạng của giao diện người dùng cài đặt quyền riêng tư tùy thuộc vào bạn. Dưới đây là một số điều cần suy nghĩ khi bạn xây dựng giao diện người dùng của mình:

Hiểu dữ liệu bạn thu thập

Hãy dành chút thời gian để lập danh mục dữ liệu người dùng mà ứng dụng của bạn lưu trữ hoặc xử lý. Hãy nhớ bao gồm dữ liệu mà ứng dụng của bạn thu thập trực tiếp và dữ liệu được thu thập bởi các dịch vụ mà ứng dụng của bạn sử dụng. Đối với các dịch vụ Firebase, việc kiểm tra các ví dụ về dữ liệu người dùng cuối được Firebase xử lý có thể hữu ích.

Thiết kế giao diện người dùng của bạn để trợ giúp người dùng

Cố gắng mô tả các loại dữ liệu bạn thu thập bằng thuật ngữ ngắn gọn, thân thiện với người dùng, bao gồm cả cách dữ liệu được thu thập sẽ giúp ích cho ứng dụng của bạn hoặc sẽ được sử dụng như thế nào.

Nếu có dữ liệu nhất định mà ứng dụng của bạn cần để hoạt động bình thường, bạn có thể tránh lỗi bằng cách tắt nút gửi trên giao diện người dùng cho đến khi người dùng chọn các tùy chọn cần thiết để ứng dụng của bạn hoạt động. Hãy suy nghĩ về luồng ứng dụng của bạn sẽ dành cho những người dùng kích hoạt một số loại thu thập dữ liệu chứ không phải các loại thu thập dữ liệu khác.

Nút gửi bị vô hiệu hóa cho đến khi người dùng đồng ý với chính sách bảo mật Nút gửi bị vô hiệu hóa cho đến khi người dùng đồng ý với chính sách bảo mật

Lưu trữ cài đặt quyền riêng tư

Vị trí và cách bạn lưu trữ cài đặt quyền riêng tư của người dùng cũng tùy thuộc vào bạn. Bạn có thể sử dụng bất kỳ mã nhận dạng đáng tin cậy nào có thể liên kết người dùng với các lựa chọn mà họ thực hiện trong giao diện người dùng cài đặt quyền riêng tư của bạn.

Một cách tiếp cận phổ biến là sử dụng mã nhận dạng làm khóa để lưu trữ các tùy chọn trong kho dữ liệu mà bạn sử dụng trong ứng dụng của mình. Ví dụ: bạn có thể sử dụng UID xác thực Firebase làm khóa trong phiên bản Cơ sở dữ liệu thời gian thực hoặc sử dụng ID phiên bản Firebase để sắp xếp các bộ sưu tập tài liệu Firestore.

Ví dụ: Lưu trữ tùy chọn của người dùng bằng UID xác thực và Cơ sở dữ liệu thời gian thực

Hãy xem xét một ứng dụng truyền thông xã hội sử dụng UID xác thực Firebase và Cơ sở dữ liệu thời gian thực Firebase để lưu trữ tùy chọn của người dùng.

Để đảm bảo dữ liệu của người dùng luôn được bảo mật và riêng tư, ứng dụng sẽ lưu tùy chọn của họ vào một phần riêng biệt của cơ sở dữ liệu với các quy tắc bảo mật hạn chế chỉ cho phép người dùng đó đọc hoặc ghi. Ứng dụng cũng xác thực rằng các giá trị mong đợi chỉ là giá trị boolean và không chấp nhận các giá trị không mong muốn:

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

Cập nhật ứng dụng của bạn để sử dụng cài đặt quyền riêng tư

Sau khi có sẵn cài đặt quyền riêng tư của người dùng trong ứng dụng của mình, bạn có thể bật các tính năng cụ thể cho những người dùng đã bật cài đặt cụ thể. Yêu cầu ứng dụng của bạn kiểm tra cài đặt trước khi tải các tính năng thu thập dữ liệu hoặc sử dụng dữ liệu đã thu thập. Trong trường hợp có một tính năng, hãy nghĩ xem trải nghiệm tốt nhất sẽ ra sao nếu không có tính năng đó. Ví dụ: nếu ứng dụng là một nền tảng tiểu blog và người dùng đã vô hiệu hóa ứng dụng lưu trữ bài đăng của họ thì trải nghiệm tốt nhất của người dùng có thể là xóa tùy chọn tạo bài đăng.

Theo dõi các thay đổi trong cài đặt quyền riêng tư

Sau khi người dùng cấp quyền thu thập dữ liệu, họ có thể thay đổi quyết định. Thêm nút hoặc liên kết vào hồ sơ hoặc màn hình cài đặt của bạn, nơi họ có thể cập nhật cài đặt quyền riêng tư của mình.

Các Liên kết "Cài đặt quyền riêng tư" sẽ hiển thị hộp thoại cài đặt để cho phép người dùng cập nhật cài đặt của họ

Bạn cũng có thể quyết định cách xử lý ứng dụng của mình khi người dùng quyết định tắt tính năng thu thập dữ liệu. Ví dụ: bạn có thể cung cấp cho người dùng tùy chọn xóa dữ liệu đã thu thập hoặc thực hiện việc đó một cách tự động. Hãy cân nhắc sử dụng Cloud Functions cho Firebase để xóa dữ liệu, vì tùy thuộc vào lượng dữ liệu cần xóa, thao tác có thể mất vài phút. Xem hướng dẫn xóa và xuất dữ liệu người dùng để biết thêm về điều này.

Lưu trữ riêng nhật ký kiểm tra cài đặt quyền riêng tư của người dùng

Một số nhà phát triển ứng dụng có thể muốn lưu giữ hồ sơ về những thay đổi đối với cài đặt quyền riêng tư. Điều này có thể được thực hiện bằng Cơ sở dữ liệu thời gian thực hoặc Firestore bằng cách tạo một phần mới của cơ sở dữ liệu làm nhật ký kiểm tra các thay đổi về quyền riêng tư, được cấu trúc theo mã định danh duy nhất của người dùng và bao gồm các cài đặt quyền riêng tư và dấu thời gian mới. Khi người dùng cập nhật cài đặt quyền riêng tư của họ, hãy thực hiện hai lần ghi, một vào cài đặt quyền riêng tư của người dùng và một vào nhật ký kiểm tra. Điều quan trọng là phải biến phần này thành một phần riêng biệt để bạn có thể tạo các Quy tắc bảo mật hạn chế hơn. Đối với người dùng Firestore, hãy thực thi rằng các tài liệu trong nhật ký kiểm tra không thể chỉnh sửa được bằng các quy tắc chi tiết:

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

Với bốn bước đó, hiểu dữ liệu của bạn, thu thập tùy chọn, lưu trữ tùy chọn và theo dõi các thay đổi, thật dễ dàng để đảm bảo ứng dụng của bạn tôn trọng quyền riêng tư của người dùng.