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

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

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

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

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

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

  • وحدة تحكّم Firebase: انقر على الزرّ التالي:

    تثبيت إضافة Delete User Data

  • واجهة سطر الأوامر (CLI): شغِّل الأمر التالي:

    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؟ اترك هذا الحقل فارغًا إذا كنت لا تستخدم 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 Storage: إذا تم تحديد مسار دليل، سيتم حذف جميع الملفات والأدلة الفرعية.

حسب المسار

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

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

الاكتشاف التلقائي (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

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