توفّر 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، انتقِل إلى ملف القواعد المذكور في ملف firebase.json.
كتابة قواعد أساسية
أثناء تطوير تطبيقك وفهم Rules، جرِّب تنفيذ Rules لتلبية بعض حالات الاستخدام الأساسية، بما في ذلك ما يلي:
- مالك المحتوى فقط: يمكنك حظر وصول المستخدمين إلى المحتوى.
- الوصول المختلط: حظر إذن الكتابة حسب المستخدم، ولكن السماح بالوصول العام للقراءة
- الوصول المستند إلى السمات: يمكنك حظر الوصول إلى مجموعة أو نوع من المستخدمين.
اختبار القواعد
إذا كنت بصدد إعداد Firebase Security Rules في وحدة تحكّم Firebase، يمكنك استخدام Firebase Rules Playground للتحقّق بسرعة من السلوك. ومع ذلك، ننصحك بإجراء اختبار أكثر شمولاً باستخدام Local Emulator Suite قبل نشر تغييراتك في مرحلة الإنتاج.
تفعيل القواعد
استخدِم وحدة تحكّم Firebase أو واجهة سطر الأوامر Firebase لنشر قواعدك في مرحلة الإنتاج. اتّبِع الخطوات الموضّحة في إدارة Firebase Security Rules وتفعيله.