Tiện ích Xoá dữ liệu người dùng (delete-user-data) cho phép bạn xoá dữ liệu của người dùng khi người dùng đó bị xoá khỏi dự án Firebase của bạn. Bạn có thể định cấu hình tiện ích này để xoá dữ liệu người dùng khỏi bất kỳ hoặc tất cả các dịch vụ sau: Cloud Firestore, Cơ sở dữ liệu theo thời gian thực hoặc Cloud Storage. Mỗi lần tiện ích kích hoạt để xoá dữ liệu đều được liên kết với UserId của người dùng.
Tiện ích này giúp tôn trọng quyền riêng tư của người dùng và đáp ứng các yêu cầu tuân thủ. Tuy nhiên, việc sử dụng tiện ích này không đảm bảo rằng bạn tuân thủ các quy định của chính phủ và ngành.
Điều kiện tiên quyết
Bạn phải sử dụng Xác thực Firebase để quản lý người dùng.
Tiện ích này chỉ xoá dữ liệu khỏi Cloud Firestore, Cơ sở dữ liệu theo thời gian thực và Cloud Storage. Nếu lưu trữ dữ liệu người dùng ở nơi khác, bạn cũng nên xoá dữ liệu người dùng khỏi những nguồn đó khi xoá người dùng.
Cài đặt tiện ích
Để cài đặt tiện ích, hãy làm theo các bước trên trang Cài đặt tiện ích Firebase. Tóm lại, hãy thực hiện một trong những thao tác sau:
Bảng điều khiển của Firebase: Nhấp vào nút sau:
CLI: Chạy lệnh sau:
firebase ext:install firebase/delete-user-data --project=projectId-or-alias
Trong quá trình cài đặt tiện ích, bạn sẽ được nhắc chỉ định một số tham số cấu hình:
Vị trí của Cloud Functions:
Chọn vị trí mà bạn muốn triển khai các hàm được tạo cho tiện ích này. Bạn thường muốn chọn một vị trí gần cơ sở dữ liệu của mình. Để được trợ giúp chọn vị trí, hãy tham khảo hướng dẫn chọn vị trí.
Đường dẫn Cloud Firestore:
Đường dẫn nào trong phiên bản Cloud Firestore của bạn chứa dữ liệu người dùng? Để trống nếu bạn không sử dụng Cloud Firestore. Nhập đường dẫn đầy đủ, phân tách bằng dấu phẩy. Bạn có thể biểu thị Mã nhận dạng người dùng của người dùng đã bị xoá bằng
{UID}. Ví dụ: nếu bạn có các tập hợpusersvàadmins, đồng thời mỗi tập hợp đều có tài liệu có Mã nhận dạng người dùng làm mã nhận dạng tài liệu, thì bạn có thể nhậpusers/{UID},admins/{UID}.Chế độ xoá của Cloud Firestore:
(Chỉ áp dụng nếu bạn sử dụng tham số
Cloud Firestore paths.) Bạn muốn xoá tài liệu Cloud Firestore bằng cách nào? Để xoá cả tài liệu trong các tập hợp con, hãy đặt tham số này thànhrecursive.Thực thể Cơ sở dữ liệu theo thời gian thực:
Bạn muốn xoá dữ liệu người dùng khỏi phiên bản Cơ sở dữ liệu theo thời gian thực nào?
Vị trí của Cơ sở dữ liệu theo thời gian thực:
(Chỉ áp dụng nếu bạn cung cấp tham số
Realtime Database instance.) Bạn muốn xoá dữ liệu người dùng khỏi vị trí nào của Cơ sở dữ liệu theo thời gian thực?Đường dẫn Cơ sở dữ liệu theo thời gian thực:
Những đường dẫn nào trong thực thể Cơ sở dữ liệu theo thời gian thực của bạn chứa dữ liệu người dùng? Để trống nếu bạn không sử dụng Realtime Database. Nhập đường dẫn đầy đủ, phân tách bằng dấu phẩy. Bạn có thể biểu thị Mã nhận dạng người dùng của người dùng đã bị xoá bằng
{UID}. Ví dụ:users/{UID},admins/{UID}.Đường dẫn Cloud Storage:
Bạn lưu trữ dữ liệu người dùng ở đâu trong Google Cloud Storage? Để trống nếu bạn không sử dụng Cloud Storage. Nhập đường dẫn đầy đủ đến các tệp hoặc thư mục trong bộ chứa Cloud Storage, phân tách bằng dấu phẩy. Sử dụng
{UID}để đại diện cho Mã nhận dạng người dùng của người dùng đã bị xoá và sử dụng{DEFAULT}để đại diện cho Bộ chứa lưu trữ mặc định của bạn.Sau đây là một loạt ví dụ:
- Để xoá tất cả tệp trong bộ chứa mặc định bằng lược đồ đặt tên tệp
{UID}-pic.png, hãy nhập{DEFAULT}/{UID}-pic.png. - Để xoá tất cả tệp trong một bộ chứa khác có tên là
my-app-logstheo quy ước đặt tên tệp{UID}-logs.txt, hãy nhập{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt. - Để xoá cả thư mục được gắn nhãn Mã nhận dạng người dùng và tất cả tệp trong đó (như
media/{UID}), hãy nhập{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.
- Để xoá tất cả tệp trong bộ chứa mặc định bằng lược đồ đặt tên tệp
Đang tìm dữ liệu cần xoá
Tiện ích này sử dụng một số cơ chế để khám phá dữ liệu cần xoá. Các cơ chế này phải được định cấu hình rõ ràng để tiện ích xoá dữ liệu. Tiện ích này sẽ chỉ xoá dữ liệu được định cấu hình rõ ràng để xoá dựa trên các cơ chế được cung cấp.
Hãy lưu ý những điểm khác biệt sau đây về hành vi giữa mỗi dịch vụ:
- Cloud Firestore: hành vi mặc định là xoá nông một tài liệu (các tập hợp con sẽ không bị xoá). Để xoá đệ quy tất cả các tập hợp con của một tài liệu, hãy đặt tuỳ chọn "Chế độ xoá Cloud Firestore" thành "Đệ quy".
- Cơ sở dữ liệu theo thời gian thực: tất cả dữ liệu tại nút được chỉ định sẽ bị xoá.
- Bộ nhớ: nếu bạn chỉ định đường dẫn thư mục, thì tất cả tệp và thư mục con sẽ bị xoá.
Theo đường dẫn
Khi định cấu hình đường dẫn Cloud Firestore, Cơ sở dữ liệu theo thời gian thực và Cloud Storage, bạn có thể xác định một biến UID trong các đường dẫn sẽ được thay thế bằng UID của người dùng đã xác thực. Khi người dùng bị xoá, tiện ích sẽ xoá tất cả dữ liệu được khoá trên UID đó tại các đường dẫn đã cho, ví dụ:
- (Các) đường dẫn Cloud Firestore:
users/{UID},admins/{UID} - (Các) đường dẫn Cơ sở dữ liệu theo thời gian thực:
likes/{UID} - (Các) đường dẫn Cloud Storage:
{DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
Tự động khám phá (Cloud Firestore)
Để cho phép tiện ích tự động khám phá các tài liệu Firestore cần xoá, hãy đặt tham số cấu hình "Bật tính năng tự động khám phá" thành "Có".
Tính năng tự động khám phá hoạt động bằng cách tự động duyệt qua cơ sở dữ liệu để tìm các tập hợp và tài liệu cần xoá theo cấu hình của bạn. Tiện ích này xác định các tập hợp và tài liệu đó bằng phương pháp sau:
- Trước tiên, tiện ích sẽ tìm tất cả các tập hợp gốc trong cơ sở dữ liệu. Nếu mã nhận dạng của một tập hợp khớp với UID của người dùng, thì toàn bộ tập hợp đó sẽ bị xoá (xoá đệ quy hoặc xoá nông, tuỳ thuộc vào cấu hình của tiện ích cho "Chế độ xoá Cloud Firestore").
- Thứ hai, nếu mã nhận dạng tập hợp không khớp, tiện ích sẽ cố gắng xác định và xoá một tài liệu nếu mã nhận dạng tài liệu của tài liệu đó khớp với UID của người dùng.
- Cuối cùng, đối với mỗi tài liệu: a. Nếu độ sâu tìm kiếm hiện tại (xem bên dưới) nhỏ hơn hoặc bằng độ sâu tìm kiếm đã định cấu hình, thì quy trình này sẽ được lặp lại cho tất cả các tập hợp con của tài liệu hiện tại. b. Nếu các trường tìm kiếm đã được định cấu hình, thì tiện ích sẽ kiểm tra xem các trường được cung cấp có khớp với UID của người dùng hay không. Nếu tìm thấy kết quả trùng khớp, tài liệu sẽ bị xoá.
Số trang trung bình được xem sau mỗi tìm kiếm
Tiện ích này cung cấp giá trị số trang trung bình được xem sau mỗi tìm kiếm có thể định cấu hình (mặc định là 3). Quá trình duyệt qua sẽ chỉ được thực thi nếu độ sâu tìm kiếm hiện tại nhỏ hơn hoặc bằng độ sâu tìm kiếm đã định cấu hình. Độ sâu tìm kiếm hiện tại dựa trên độ sâu của tập hợp hiện tại hoặc tập hợp mẹ của tài liệu, ví dụ:
/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2
Tiện ích này sẽ KHÔNG tự động xoá UID được lưu trữ trong mảng hoặc bản đồ, đồng thời sẽ không tìm kiếm dữ liệu được khoá theo mã nhận dạng người dùng được lưu trữ trong các tập hợp con lồng nhau sâu hơn độ sâu được chỉ định ở trên.