تتيح لك إضافة "حذف بيانات المستخدم" (delete-user-data
) حذف بيانات المستخدم عند حذفه من مشروعك على Firebase. يمكنك ضبط هذه الإضافة لحذف بيانات المستخدمين من أيّ من الخدمات التالية أو جميعها: Cloud Firestore أو Realtime Database أو Cloud Storage. يتم ربط كل عامل تشغيل للإضافة لحذف البيانات بمفتاح UserId
الخاص بالمستخدم.
هذه الإضافة مفيدة لاحترام خصوصية المستخدم واستيفاء متطلبات الامتثال. ومع ذلك، لا يضمن استخدام هذه الإضافة الامتثال للوائح الحكومية وتلك المتعلّقة بالمجال.
المتطلبات الأساسية
يجب استخدام Firebase Authentication لإدارة المستخدمين.
لا تحذف هذه الإضافة البيانات إلا من Cloud Firestore وقاعدة البيانات الآنية الاستجابة وCloud Storage. إذا كنت تخزِّن بيانات المستخدمين في مكان آخر، عليك أيضًا حذف بيانات المستخدمين من هذه المصادر عند حذف المستخدمين.
تثبيت الإضافة
لتثبيت الإضافة، اتّبِع الخطوات الواردة في صفحة تثبيت إضافة Firebase. باختصار، يمكنك تنفيذ أحد الإجراءات التالية:
وحدة تحكُّم Firebase: انقر على الزرّ التالي:
واجهة سطر الأوامر: نفِّذ الأمر التالي:
firebase ext:install firebase/delete-user-data --project=projectId-or-alias
أثناء تثبيت الإضافة، سيُطلب منك تحديد عدد من مَعلمات الضبط:
موقع "وظائف السحابة الإلكترونية":
اختَر الموقع الجغرافي الذي تريد نشر الدوالّ التي تم إنشاؤها لهذه الإضافة فيه. وعادةً ما يكون الموقع الجغرافي قريبًا من قاعدة بياناتك. للحصول على مساعدة في اختيار موقع جغرافي، يُرجى الرجوع إلى دليل اختيار الموقع الجغرافي.
مسارات Cloud Firestore:
ما هي المسارات في مثيل Cloud Firestore التي تحتوي على بيانات المستخدمين؟ اترك الحقل فارغًا إذا كنت لا تستخدم Cloud Firestore. أدخِل المسارات الكاملة مفصولة بفواصل. يمكنك تمثيل معرّف المستخدم المحذوف باستخدام
{UID}
. على سبيل المثال، إذا كانت لديك المجموعةusers
والمجموعةadmins
، وكانت كل مجموعة تحتوي على مستندات تتضمّن رقم تعريف المستخدم كرقم تعريف للمستند، يمكنك إدخالusers/{UID},admins/{UID}
.وضع الحذف في Cloud Firestore:
(لا ينطبق إلا في حال استخدام المَعلمة
Cloud Firestore paths
.) كيف تريد حذف مستندات Cloud Firestore؟ لحذف المستندات في المجموعات الفرعية أيضًا، اضبط هذه المَعلمة علىrecursive
.مثيل "قاعدة بيانات الوقت الفعلي":
من أيّ نسخة من "قاعدة بيانات في الوقت الفعلي" تريد حذف بيانات المستخدمين؟
الموقع الجغرافي لـ "قاعدة بيانات الوقت الفعلي":
(لا ينطبق إلا إذا قدّمت المَعلمة
Realtime Database instance
.) من أيّ موقع في "قاعدة بيانات الوقت الفعلي" تريد حذف بيانات المستخدمين؟مسارات "قاعدة بيانات الوقت الفعلي":
ما هي المسارات في مثيل "قاعدة بيانات الوقت الفعلي" التي تحتوي على بيانات المستخدمين؟ اترك الحقل فارغًا إذا كنت لا تستخدم قاعدة بيانات "الوقت الفعلي". أدخِل المسارات الكاملة مفصولة بفواصل. يمكنك تمثيل معرّف المستخدم المحذوف باستخدام
{UID}
. على سبيل المثال:users/{UID},admins/{UID}
.مسارات Cloud Storage:
أين تخزِّن بيانات المستخدمين في Google Cloud Storage؟ اترك هذا الحقل فارغًا إذا كنت لا تستخدم "مساحة التخزين في السحابة الإلكترونية". أدخِل المسارات الكاملة إلى الملفات أو الأدلة في حِزم التخزين، مفصولة بفواصل. استخدِم
{UID}
لتمثيل معرّف المستخدم الذي تم حذفه، واستخدِم{DEFAULT}
لتمثيل حزمة التخزين التلقائية.في ما يلي سلسلة من الأمثلة:
- لحذف جميع الملفات في حزمة التخزين التلقائية باستخدام مخطّط تسمية الملفات
{UID}-pic.png
، أدخِل{DEFAULT}/{UID}-pic.png
. - لحذف جميع الملفات أيضًا في حزمة أخرى باسم
my-app-logs
باستخدام مخطّط تسمية الملفات{UID}-logs.txt
، أدخِل{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt
. - لحذف أيضًا دليل يحمل رقم تعريف مستخدم وجميع ملفاته (مثل
media/{UID}
)، أدخِل{DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}
.
- لحذف جميع الملفات في حزمة التخزين التلقائية باستخدام مخطّط تسمية الملفات
اكتشاف البيانات المُراد حذفها
هناك بعض الآليات التي تستخدمها هذه الإضافة لاكتشاف البيانات المراد حذفها. يجب ضبط هذه الآليات بشكل صريح لكي تتمكّن الإضافة من حذف البيانات. ولن تحذف الإضافة سوى البيانات التي تم ضبطها صراحةً لحذفها استنادًا إلى الآليات المقدَّمة.
يجب الانتباه إلى الاختلافات السلوكية التالية بين كل خدمة:
- Cloud Firestore: السلوك التلقائي هو حذف مستند بشكل سطحي (لن يتم حذف المجموعات الفرعية). لحذف جميع المجموعات الفرعية لمستند بشكل تسلسلي، اضبط خيار "وضع الحذف في Cloud Firestore" على "تسلسلي".
- قاعدة بيانات الوقت الفعلي: سيتم حذف جميع البيانات في العقدة المحدّدة.
- مساحة التخزين: في حال تحديد مسار دليل، سيتم حذف جميع الملفات والأدلة الفرعية.
حسب المسار
عند ضبط مسارات Cloud Firestore و"قاعدة بيانات في الوقت الفعلي" و"تخزين في السحابة الإلكترونية"، من الممكن تحديد متغيّر UID
في المسارات ليتم استبداله بمعرّف مستخدم تمّت مصادقة هويته. عند حذف مستخدم، ستحذف الإضافة جميع البيانات التي تمّ ربطها بمعرّف المستخدم الفريد هذا في المسارات المحدّدة، على سبيل المثال:
- مسارات Cloud Firestore:
users/{UID},admins/{UID}
- مسارات قاعدة بيانات الوقت الفعلي:
likes/{UID}
- مسارات Cloud Storage:
{DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg
الاكتشاف التلقائي (Cloud Firestore)
لتفعيل إضافة الاكتشاف التلقائي لمستندات Firestore المطلوب حذفها، اضبط مَعلمة الضبط "تفعيل الاكتشاف التلقائي" على "نعم".
يعمل وضع "الاكتشاف التلقائي" من خلال التنقّل تلقائيًا في قاعدة البيانات للعثور على المجموعات والمستندات التي يجب حذفها وفقًا لإعداداتك. تحدد الإضافة هذه المجموعات والمستندات باستخدام المنهجية التالية:
- أولاً، تعثر الإضافة على جميع المجموعات الجذر في قاعدة البيانات. إذا كان رقم تعريف المجموعة يتطابق مع رقم تعريف المستخدم الفريد، يتم حذف المجموعة بأكملها (يكون الحذف إما متكرّرًا أو سطحيًا، استنادًا إلى إعدادات الإضافات "لوضع الحذف في Cloud Firestore").
- ثانيًا، إذا لم يتطابق معرّف المجموعة، ستحاول الإضافة تحديد مستند وحذفه إذا كان معرّف المستند يتطابق مع المعرّف الفريد للمستخدم.
- أخيرًا، بالنسبة إلى كل مستند: أ. إذا كان عمق البحث الحالي (راجِع المعلومات أدناه) أقل من أو يساوي عمق البحث الذي تم ضبطه، ستتم تكرار العملية لجميع المجموعات الفرعية للمستند الحالي. ب. في حال ضبط حقول البحث، ستتحقّق الإضافة ممّا إذا كانت الحقول المقدَّمة تتطابق مع المعرّف الفريد للمستخدم. في حال العثور على مطابقة، سيتم حذف المستند.
متوسط عدد الصفحات المشاهَدة بعد البحث
تقدّم الإضافة قيمة قابلة للضبط لعمق البحث (تكون القيمة التلقائية هي 3). ولن يتم تنفيذ التنقّل إلا إذا كان عمق البحث الحالي أقل من أو يساوي عمق البحث الذي تم ضبطه. يستند عمق البحث الحالي إلى عمق المجموعة الحالية أو المجموعة الرئيسية للمستندات، على سبيل المثال:
/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2
لن تؤدي هذه الإضافة إلى حذف أرقام تعريف المستخدمين المخزّنة في الصفائف أو الخرائط تلقائيًا، ولن تبحث عن البيانات التي يتمّ ترتيبها حسب رقم تعريف المستخدِم المخزّن في مجموعات فرعية متداخلة بشكلٍ عميق بعد الحدّ الأقصى المحدّد أعلاه.