بدء استخدام قواعد أمان Cloud Firestore

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

توفر قواعد الأمان إمكانية التحكم في الوصول والتحقق من صحة البيانات بطريقة بسيطة تنسيق معبّر. لإنشاء أنظمة وصول مستندة إلى المستخدم ومستندة إلى الأدوار تحافظ على المستخدِمين بأمان البيانات، عليك استخدام Firebase المصادقة باستخدام قواعد أمان Cloud Firestore

الإصدار 2 من قواعد الأمان

اعتبارًا من أيار (مايو) 2019، أصبح الإصدار 2 من قواعد أمان Cloud Firestore متاحًا الآن المتوفرة. يغيّر الإصدار 2 من القواعد سلوك التكراري أحرف البدل {name=**} عليك استخدام الإصدار 2 إذا كنت تخطّط استخدام طلبات بحث مجموعات المجموعات. يجب الموافقة على الإصدار 2 من خلال جعل rules_version = '2'; السطر الأول ضِمن إعدادات الأمان القواعد:

rules_version = '2';
service cloud.firestore {
  match /databases/{database}/documents {

قواعد الكتابة

ستتمكن من كتابة وإدارة قواعد أمان Cloud Firestore المصممة لنموذج البيانات إنشائها لقاعدة البيانات الافتراضية وكل قاعدة بيانات إضافية في مشروعك.

تتألف جميع قواعد أمان Cloud Firestore من عبارات match التي تحدِّد المستندات في قاعدة البيانات وتعبيرات allow التي تتحكم في الوصول إلى هذه المستندات:

service cloud.firestore {
  match /databases/{database}/documents {
    match /<some_path>/ {
      allow read, write: if <some_condition>;
    }
  }
}

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

في ما يلي بعض الأمثلة على مجموعات القواعد الأساسية. في حين أن هذه القواعد صالحة، فإنها لا يُنصح باستخدامها مع تطبيقات الإنتاج:

المصادقة مطلوبة

// Allow read/write access on all documents to any user signed in to the application
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if request.auth != null;
    }
  }
}

رفض الكل

// Deny read/write access to all users under any conditions
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

السماح بالكل

// Allow read/write access to all users under any conditions
// Warning: **NEVER** use this rule set in production; it allows
// anyone to overwrite your entire database.
service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if true;
    }
  }
}

يتطابق المسار {document=**} المُستخدَم في الأمثلة أعلاه مع أي مستند في لقاعدة البيانات بأكملها. يمكنك المتابعة إلى دليل تنظيم قواعد الأمان من أجل تتعلم كيفية مطابقة مسارات بيانات محددة والعمل مع البيانات الهرمية.

قواعد الاختبار

توفِّر Cloud Firestore أداة محاكاة للقواعد يمكنك استخدامها لاختبار والقواعد. يمكنك الوصول إلى المحاكي من علامة التبويب القواعد في قسم Cloud Firestore في وحدة تحكم Firebase.

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

نشر القواعد

حتى تتمكن من البدء في استخدام Cloud Firestore من تطبيق الأجهزة الجوّالة، ستحتاج إلى لنشر قواعد الأمان. يمكنك نشر القواعد في وحدة تحكُّم Firebase، باستخدام واجهة سطر الأوامر في Firebase أو باستخدام Cloud Firestore management REST API.

قد يستغرق تطبيق تحديثات "قواعد الأمان" في Cloud Firestore مدة تصل إلى دقيقة واحدة المستمعين. ومع ذلك، قد يستغرق نشر التغييرات بالكامل مدة تصل إلى 10 دقائق. ويؤثر في أي مستمعين نشطين.

استخدام "وحدة تحكُّم Firebase"

لإعداد أول مجموعة من القواعد ونشرها لقاعدة البيانات التلقائية في افتح علامة التبويب القواعد في Cloud Firestore ضمن "وحدة تحكُّم Firebase".

اكتب قواعدك في المحرّر على الإنترنت، ثم انقر على نشر.

استخدام واجهة سطر الأوامر في Firebase

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

// Set up Firestore in your project directory, creates a .rules file
firebase init firestore

// Edit the generated .rules file to your desired security rules
// ...

// Deploy rules for all configured databases
firebase deploy --only firestore

تحسين الأمان في Cloud Storage

ستستفيد تطبيقاتك من ميزات قاعدة البيانات الفعّالة في Cloud Firestore إلى جانب ميزات تخزين الملفات وإدارتها في Cloud Storage. مُستعمَلة معًا، تُعزز هذه المنتجات أيضًا أمان التطبيقات، نظرًا يمكن أن تسجّل Cloud Firestore متطلبات التفويض التي يمكن استخدامها بواسطة "قواعد أمان Firebase" لكل من المنتجين. لمزيد من المعلومات، يُرجى الاطّلاع على دليل Cloud Storage.

الخطوات التالية