تخزين إعدادات الخصوصية باستخدام Firebase

يجعل Firebase من السهل جمع وتتبع تفضيلات المستخدمين فيما يتعلق بجمع البيانات ومعالجتها:

  1. قم بإعداد إعدادات الخصوصية
  2. قم بتحديث تطبيقك لاستخدام إعدادات الخصوصية
  3. تتبع التغييرات في إعدادات الخصوصية

قم بإعداد إعدادات الخصوصية

لجمع إعدادات الخصوصية وتخزينها، ستحتاج إلى شيئين: واجهة المستخدم لمطالبة المستخدمين بإعدادات الخصوصية الخاصة بهم وطريقة لتخزين هذه الإعدادات.

إنشاء واجهة مستخدم لإعدادات الخصوصية

إن تنسيق واجهة مستخدم إعدادات الخصوصية متروك لك. فيما يلي بعض الأشياء التي يجب التفكير فيها أثناء إنشاء واجهة المستخدم الخاصة بك:

فهم البيانات التي تجمعها

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

صمم واجهة المستخدم الخاصة بك لمساعدة المستخدمين

حاول وصف أنواع البيانات التي تجمعها بعبارات موجزة وسهلة الاستخدام، بما في ذلك كيف تساعد البيانات المجمعة تطبيقك أو سيتم استخدامها.

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

تم تعطيل زر الإرسال حتى يوافق المستخدم على سياسة الخصوصية تم تعطيل زر الإرسال حتى يوافق المستخدم على سياسة الخصوصية

تخزين إعدادات الخصوصية

إن مكان وكيفية تخزين إعدادات خصوصية المستخدمين أمر متروك لك أيضًا. يمكنك استخدام أي معرف موثوق يمكنه ربط المستخدم بالاختيارات التي يقوم بها في واجهة مستخدم إعدادات الخصوصية الخاصة بك.

أحد الأساليب الشائعة هو استخدام المعرف كمفتاح لتخزين التفضيلات في مخزن البيانات الذي تستخدمه في تطبيقك. على سبيل المثال، يمكنك استخدام معرفات Firebase Auth UIDs كمفتاح في مثيل قاعدة بيانات Realtime أو استخدام معرف مثيل Firebase لتنظيم مجموعات من مستندات Firestore.

مثال: تخزين تفضيلات المستخدم باستخدام معرفات Auth UIDs وقاعدة بيانات Realtime

فكر في تطبيق وسائط اجتماعية يستخدم معرفات Firebase Auth UIDs وFirebase Realtime Database لتخزين تفضيلات المستخدم.

ولضمان بقاء بيانات المستخدمين آمنة وخاصة، يحفظ التطبيق تفضيلاتهم في جزء منفصل من قاعدة البيانات بقواعد أمان مقيدة تسمح فقط لهذا المستخدم بالقراءة أو الكتابة. يتحقق التطبيق أيضًا من أن القيم المتوقعة هي قيم منطقية فقط، وأنه لا يقبل القيم غير المتوقعة:

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

قم بتحديث تطبيقك لاستخدام إعدادات الخصوصية

بمجرد توفر إعدادات خصوصية المستخدمين في تطبيقك، يمكنك تشغيل ميزات محددة للمستخدمين التي قامت بتمكين إعدادات معينة. اطلب من تطبيقك التحقق من الإعدادات قبل تحميل الميزات التي تجمع البيانات أو تستخدم البيانات المجمعة. في حالة وجود ميزة ما، فكر في أفضل تجربة ستكون بدون هذه الميزة. على سبيل المثال، إذا كان التطبيق عبارة عن نظام أساسي للتدوين الصغير، وقام المستخدم بتعطيل التطبيق من تخزين منشوراته، فقد تكون أفضل تجربة للمستخدم هي إزالة خيار إنشاء منشور.

تتبع التغييرات في إعدادات الخصوصية

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

ال يعرض رابط "إعدادات الخصوصية" مربع حوار الإعدادات للسماح للمستخدمين بتحديث إعداداتهم

يمكنك أيضًا تحديد كيفية تعامل تطبيقك عندما يقرر المستخدم تعطيل جمع البيانات. على سبيل المثال، يمكنك أن تقدم للمستخدم خيار حذف البيانات المجمعة أو القيام بذلك تلقائيًا. فكر في استخدام Cloud Functions for Firebase لحذف البيانات، حيث قد تستغرق العملية بضع دقائق، اعتمادًا على كمية البيانات التي يجب حذفها. راجع دليل إزالة بيانات المستخدم وتصديرها لمعرفة المزيد حول هذا الموضوع.

قم بتخزين سجل تدقيق لإعدادات خصوصية المستخدمين بشكل منفصل

قد يرغب بعض مطوري التطبيقات في الاحتفاظ بسجل للتغييرات في إعدادات الخصوصية. يمكن القيام بذلك باستخدام Realtime Database أو Firestore عن طريق إنشاء قسم جديد من قاعدة البيانات ليكون سجل تدقيق لتغييرات الخصوصية، منظمًا ضمن المعرف الفريد للمستخدم، ويتضمن إعدادات الخصوصية الجديدة والطابع الزمني. عندما يقوم مستخدم بتحديث إعدادات الخصوصية الخاصة به، قم بإجراء عمليتين للكتابة، واحدة لإعدادات خصوصية المستخدم، وواحدة لسجل التدقيق. من المهم جعل هذا قسمًا منفصلاً حتى تتمكن من إنشاء قواعد أمان أكثر تقييدًا. بالنسبة لمستخدمي Firestore، تأكد من أن المستندات الموجودة في سجل التدقيق غير قابلة للتحرير باستخدام القواعد الدقيقة:

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

من خلال هذه الخطوات الأربع، من السهل فهم بياناتك وجمع التفضيلات وتخزين التفضيلات وتتبع التغييرات للتأكد من أن تطبيقك يحترم خصوصية المستخدمين. ، يجعل Firebase من السهل جمع وتتبع تفضيلات المستخدمين فيما يتعلق بجمع البيانات ومعالجتها:

  1. قم بإعداد إعدادات الخصوصية
  2. قم بتحديث تطبيقك لاستخدام إعدادات الخصوصية
  3. تتبع التغييرات في إعدادات الخصوصية

قم بإعداد إعدادات الخصوصية

لجمع إعدادات الخصوصية وتخزينها، ستحتاج إلى شيئين: واجهة المستخدم لمطالبة المستخدمين بإعدادات الخصوصية الخاصة بهم وطريقة لتخزين هذه الإعدادات.

إنشاء واجهة مستخدم لإعدادات الخصوصية

إن تنسيق واجهة مستخدم إعدادات الخصوصية متروك لك. فيما يلي بعض الأشياء التي يجب التفكير فيها أثناء إنشاء واجهة المستخدم الخاصة بك:

فهم البيانات التي تجمعها

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

صمم واجهة المستخدم الخاصة بك لمساعدة المستخدمين

حاول وصف أنواع البيانات التي تجمعها بعبارات موجزة وسهلة الاستخدام، بما في ذلك كيف تساعد البيانات المجمعة تطبيقك أو سيتم استخدامها.

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

تم تعطيل زر الإرسال حتى يوافق المستخدم على سياسة الخصوصية تم تعطيل زر الإرسال حتى يوافق المستخدم على سياسة الخصوصية

تخزين إعدادات الخصوصية

إن مكان وكيفية تخزين إعدادات خصوصية المستخدمين أمر متروك لك أيضًا. يمكنك استخدام أي معرف موثوق يمكنه ربط المستخدم بالاختيارات التي يقوم بها في واجهة مستخدم إعدادات الخصوصية الخاصة بك.

أحد الأساليب الشائعة هو استخدام المعرف كمفتاح لتخزين التفضيلات في مخزن البيانات الذي تستخدمه في تطبيقك. على سبيل المثال، يمكنك استخدام معرفات Firebase Auth UIDs كمفتاح في مثيل قاعدة بيانات Realtime أو استخدام معرف مثيل Firebase لتنظيم مجموعات من مستندات Firestore.

مثال: تخزين تفضيلات المستخدم باستخدام معرفات Auth UIDs وقاعدة بيانات Realtime

فكر في تطبيق وسائط اجتماعية يستخدم معرفات Firebase Auth UIDs وFirebase Realtime Database لتخزين تفضيلات المستخدم.

ولضمان بقاء بيانات المستخدمين آمنة وخاصة، يحفظ التطبيق تفضيلاتهم في جزء منفصل من قاعدة البيانات بقواعد أمان مقيدة تسمح فقط لهذا المستخدم بالقراءة أو الكتابة. يتحقق التطبيق أيضًا من أن القيم المتوقعة هي قيم منطقية فقط، وأنه لا يقبل القيم غير المتوقعة:

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

قم بتحديث تطبيقك لاستخدام إعدادات الخصوصية

بمجرد توفر إعدادات خصوصية المستخدمين في تطبيقك، يمكنك تشغيل ميزات محددة للمستخدمين التي قامت بتمكين إعدادات معينة. اطلب من تطبيقك التحقق من الإعدادات قبل تحميل الميزات التي تجمع البيانات أو تستخدم البيانات المجمعة. في حالة وجود ميزة ما، فكر في أفضل تجربة ستكون بدون هذه الميزة. على سبيل المثال، إذا كان التطبيق عبارة عن نظام أساسي للتدوين الصغير، وقام المستخدم بتعطيل التطبيق من تخزين منشوراته، فقد تكون أفضل تجربة للمستخدم هي إزالة خيار إنشاء منشور.

تتبع التغييرات في إعدادات الخصوصية

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

ال يعرض رابط "إعدادات الخصوصية" مربع حوار الإعدادات للسماح للمستخدمين بتحديث إعداداتهم

يمكنك أيضًا تحديد كيفية تعامل تطبيقك عندما يقرر المستخدم تعطيل جمع البيانات. على سبيل المثال، يمكنك أن تقدم للمستخدم خيار حذف البيانات المجمعة أو القيام بذلك تلقائيًا. فكر في استخدام Cloud Functions for Firebase لحذف البيانات، حيث قد تستغرق العملية بضع دقائق، اعتمادًا على كمية البيانات التي يجب حذفها. راجع دليل إزالة بيانات المستخدم وتصديرها لمعرفة المزيد حول هذا الموضوع.

قم بتخزين سجل تدقيق لإعدادات خصوصية المستخدمين بشكل منفصل

قد يرغب بعض مطوري التطبيقات في الاحتفاظ بسجل للتغييرات في إعدادات الخصوصية. يمكن القيام بذلك باستخدام Realtime Database أو Firestore عن طريق إنشاء قسم جديد من قاعدة البيانات ليكون سجل تدقيق لتغييرات الخصوصية، منظمًا ضمن المعرف الفريد للمستخدم، ويتضمن إعدادات الخصوصية الجديدة والطابع الزمني. عندما يقوم مستخدم بتحديث إعدادات الخصوصية الخاصة به، قم بإجراء عمليتين للكتابة، واحدة لإعدادات خصوصية المستخدم، وواحدة لسجل التدقيق. من المهم جعل هذا قسمًا منفصلاً حتى تتمكن من إنشاء قواعد أمان أكثر تقييدًا. بالنسبة لمستخدمي Firestore، تأكد من أن المستندات الموجودة في سجل التدقيق غير قابلة للتحرير باستخدام القواعد الدقيقة:

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

من خلال هذه الخطوات الأربع، من السهل فهم بياناتك وجمع التفضيلات وتخزين التفضيلات وتتبع التغييرات للتأكد من أن تطبيقك يحترم خصوصية المستخدمين.