استخدام الإضافة "حذف بيانات المستخدمين"

تتيح لك إضافة "حذف بيانات المستخدمين" (delete-user-data) حذف بيانات المستخدم عند حذفه من مشروعك على Firebase. يمكنك ضبط هذه الإضافة لحذف بيانات المستخدمين من أيٍّ من العناصر التالية أو كلّها: Cloud Firestore أو "قاعدة بيانات الوقت الفعلي" أو Cloud Storage. يرتبط كل عامل تشغيل للإضافة لحذف البيانات بمفتاح UserId للمستخدم.

هذه الإضافة مفيدة لاحترام خصوصية المستخدم وتلبية متطلبات الامتثال. ومع ذلك، لا يضمن استخدام هذه الإضافة الامتثال للوائح التنظيمية الحكومية والصناعية.

المتطلّبات الأساسية

تثبيت الإضافة

لتثبيت الإضافة، اتّبع الخطوات الواردة في صفحة تثبيت إضافة Firebase. باختصار، يمكنك تنفيذ أحد الإجراءات التالية:

أثناء تثبيت الإضافة، سيُطلب منك تحديد عدد من مَعلمات الإعداد:

  • موقع Cloud Functions:

    اختَر الموقع الجغرافي حيث تريد نشر الدوال التي تم إنشاؤها لهذه الإضافة. أنت عادةً تريد موقعًا قريبًا من قاعدة البيانات الخاصة بك. للحصول على مساعدة في اختيار موقع جغرافي، يُرجى الرجوع إلى دليل اختيار الموقع الجغرافي.

  • مسارات 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؟ اترك هذا الحقل فارغًا إذا لم تكن تستخدم 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.
    • لحذف دليل يحمل تصنيف User ID وجميع ملفاته (مثل media/{UID}) أيضًا، أدخِل {DEFAULT}/{UID}-pic.png,my-app-logs/{UID}-logs.txt,{DEFAULT}/media/{UID}.

اكتشاف البيانات المراد حذفها

تستخدم هذه الإضافة بضع آليات لاكتشاف البيانات المطلوب حذفها. يجب أن يتم ضبط هذه الآليات بشكل صريح لكي تحذف الإضافة البيانات. لن تحذف الإضافة سوى البيانات التي تم ضبطها صراحةً لحذفها استنادًا إلى الآليات المتوفرة.

يُرجى الانتباه إلى الاختلافات السلوكية التالية بين كل خدمة:

  • Cloud Firestore: الإعداد التلقائي هو حذف مستند سطحيًا (لن يتم حذف المجموعات الفرعية). لحذف جميع المجموعات الفرعية لمستند معيّن بشكل متكرر، اضبط خيار "وضع الحذف في Cloud Firestore" على "تكرّر".
  • قاعدة بيانات الوقت الفعلي: سيتم حذف جميع البيانات في العقدة المحددة.
  • التخزين: في حال تحديد مسار دليل، سيتم حذف جميع الملفات والأدلة الفرعية.

حسب المسار

عند ضبط مسارات Cloud Firestore وقاعدة بيانات الوقت الفعلي وCloud Storage، من الممكن تحديد متغيّر UID في المسارات التي سيتم استبداله بالمعرّف الفريد للمستخدم الذي تمت مصادقته. عند حذف مستخدم، ستحذف الإضافة جميع البيانات الأساسية في هذا المعرّف الفريد في المسارات المحدّدة، على سبيل المثال:

  • مسارات Cloud Firestore: users/{UID},admins/{UID}
  • مسارات قاعدة البيانات في الوقت الفعلي: likes/{UID}
  • مسارات Cloud Storage: {DEFAULT}/uploads/{UID},{DEFAULT}/avatars/{UID}.jpeg

Auto Discovery (Cloud Firestore)

لتفعيل الإضافة من أجل رصد مستندات Firestore تلقائيًا لحذفها، اضبط مَعلمة الضبط "تفعيل الاكتشاف التلقائي" على "نعم".

تعمل ميزة الاكتشاف التلقائي عن طريق اجتياز قاعدة البيانات تلقائيًا للعثور على المجموعات والمستندات التي يجب حذفها وفقًا للإعدادات. تحدد الإضافة هذه المجموعات والمستندات بالمنهجية التالية:

  1. أولاً، تبحث الإضافة عن جميع مجموعات الجذر في قاعدة البيانات. وفي حال تطابق رقم تعريف المجموعة مع المعرّف الفريد للمستخدم، يتم حذف المجموعة بأكملها (تكون عملية الحذف متكررة أو سطحية، حسب إعدادات الإضافات في "وضع الحذف في Cloud Firestore").
  2. ثانيًا، في حال عدم تطابق معرّف المجموعة، ستحاول الإضافة تحديد مستند وحذفه إذا كان معرّف المستند متطابقًا مع المعرّف الفريد للمستخدم.
  3. وأخيرًا، لكل وثيقة: أ. إذا كان عمق البحث الحالي (انظر أدناه) أقل ��ن عمق البحث الذي تم إعداده أو مساويًا له، سيتم تكرار العملية لكل المجموعات الفرعية للمستند الحالي. ب. في حال ضبط حقول البحث، ستتحقّق الإضافة مما إذا كانت الحقول المقدّمة تتطابق مع المعرّف الفريد للمستخدم. وفي حال العثور على نتيجة مطابقة، سيتم حذف المستند.

متوسّط عدد الصفحات المشاهَدة بعد البحث

توفِّر الإضافة قيمة عمق بحث قابلة للضبط (الإعداد التلقائي هو 3). لن يتم تنفيذ الاجتياز إلا إذا كان عمق البحث الحالي أقل من أو يساوي عمق البحث الذي تم إعداده. ويعتمد عمق البحث الحالي على عمق المجموعة الحالية أو المجموعة الرئيسية للمستندات، على سبيل المثال

/users = 1
/users/<document-id> = 1
/users/<document-id>/comments = 2
/users/<document-id>/comments/<document-id> = 2

لن تحذف هذه الإضافة تلقائيًا المعرفات الفريدة (UID) المخزّنة في الصفائف أو الخرائط، ولن تبحث عن البيانات المرتبطة برقم تعريف المستخدم والمخزن في مجموعات فرعية مدمَجة بعمق يتجاوز العمق المحدّد أعلاه.