توفّر Firebase Security Rules حماية قوية وقابلة للتخصيص بالكامل لبياناتك في Cloud Firestore وRealtime Database وCloud Storage. يمكنك بدء استخدام Rules بسهولة باتّباع الخطوات الواردة في هذا الدليل، ما يضمن أمان بياناتك ويحمي تطبيقك من المستخدمين الضارّين.
فهم اللغة Firebase Security Rules
قبل البدء في كتابة القواعد، من المفيد تخصيص بعض الوقت لمراجعة
لغة Firebase Security Rules المحدّدة لمنتجات Firebase التي تستخدمها.
تستفيد Cloud Storage من مجموعة فائقة
للغة التعبير الشائعة (CEL) التي تعتمد على بيانَي match
وallow
اللذَين يحدّدان شرطًا للوصول إلى مسار محدّد.
ابدأ بتعلُّم البنية الأساسية للغة Firebase Security Rules.
إعداد Authentication
أضِف Firebase Authentication إلى تطبيقك إذا لم يسبق لك ذلك. يتوافق Firebase Authentication مع العديد من طرق المصادقة الشائعة ويتم دمجه مع Firebase Security Rules لتوفير إمكانات شاملة للتحقّق.
يمكنك إعداد معلومات مصادقة مخصّصة إضافية لتطبيقك.
مزيد من المعلومات حول Firebase Security Rules وFirebase Authentication
تحديد هياكل البيانات والقواعد
قد تؤثر طريقة تنظيم بياناتك في طريقة تنظيم قواعدك وتطبيقها. أثناء تحديد هياكل البيانات، ضع في اعتبارك الآثار التي قد تحدثها على بنية Rules.
على سبيل المثال، في Cloud Storage، قد تحتاج إلى تضمين حقل يشير إلى دور معيّن لكل مستخدم. بعد ذلك، يمكن لقواعدك قراءة هذا الحقل واستخدامه لمنح إذن الوصول المستنِد إلى الدور. يمكنك أيضًا إنشاء قاعدة بيانات Cloud Firestore وتخزين معايير الوصول في مستندات Cloud Firestore ، ثم الوصول إلى هذه المستندات من Cloud Storage Security Rules.
عند تحديد بنية البيانات والقواعد، يجب مراعاة طريقة تسلسل القواعد أو عدم تسلسلها، وذلك استنادًا إلى منتجك. باستخدام Realtime Database، تعمل القواعد من الأعلى إلى الأسفل، مع إلغاء القواعد الأقل عمقًا للقواعد الأكثر عمقًا. إذا كان أحد القواعد يمنح أذونات قراءة أو كتابة في مسار معيّن، سيمنح أيضًا إذن الوصول إلى جميع العقد الفرعية ضمنه. في المقابل، مع Cloud Firestore و Cloud Storage، لا تنطبق القواعد إلا على مستويات محدّدة من التسلسل الهرمي للبيانات، ويمكنك كتابة قواعد صريحة للتحكّم في الوصول إلى المستويات المختلفة.
الوصول إلى قواعدك
للاطّلاع على Rules الحالية، استخدِم إما واجهة سطر أوامر Firebase أو وحدة تحكّم Firebase. احرص على تعديل القواعد باستخدام الطريقة نفسها باستمرار لتجنّب استبدال التعديلات عن طريق الخطأ. إذا لم تكن متأكّدًا مما إذا كانت القواعد المحدّدة محليًا تعكس آخر التعديلات، تعرض وحدة التحكّم في Firebase دائمًا أحدث إصدار تم نشره من Firebase Security Rules.
للوصول إلى قواعدك من وحدة تحكّم Firebase، اختَر مشروعك، ثمّ انقر على مساحة التخزين في لوحة التنقّل اليمنى. انقر على Rules بعد الانتقال إلى قاعدة البيانات أو حزمة التخزين الصحيحة.
للوصول إلى قواعدك من Firebase CLI، انتقِل إلىملف القواعد المُشار إليه في ملف firebase.json.
كتابة القواعد الأساسية
أثناء تطوير تطبيقك وفهم Rules، حاوِل تنفيذ Rules لمعالجة بعض حالات الاستخدام الأساسية، بما في ذلك ما يلي:
- مالك المحتوى فقط: تقييد إمكانية وصول المستخدم إلى المحتوى
- إمكانية الوصول المختلطة: يمكنك حصر إمكانية الكتابة حسب المستخدم، ولكن السماح بإمكانية الوصول للقراءة للجميع.
- الوصول المستنِد إلى السمات: يمكنك تقييد الوصول إلى مجموعة أو نوع من المستخدمين.
اختبار القواعد
إذا كنت بصدد إعداد Firebase Security Rules في وحدة تحكّم Firebase، يمكنك استخدام مساحة لعب قواعد Firebase للتحقّق بسرعة من السلوك. ومع ذلك، ننصحك بإجراء اختبار أكثر دقة باستخدام Local Emulator Suite قبل نشر التغييرات في قناة الإصدار العلني.
نشر القواعد
استخدِم وحدة تحكّم Firebase أو واجهة سطر أوامر Firebase لنشر قواعدك في قناة الإصدار العلني. اتّبِع الخطوات الموضّحة في مقالة إدارة Firebase Security Rules ونشره.