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

باستخدام Cloud Firestore Security Rules، يمكنك التركيز على بناء مستخدم متميّز بدون الحاجة إلى إدارة البنية الأساسية أو كتابة البيانات من جهة الخادم رمز المصادقة والترخيص.

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

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

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

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

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

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

تتألف كل Cloud Firestore Security Rules من عبارات 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 أو باستخدام واجهة برمجة تطبيقات REST management Cloud Firestore.

قد تستغرق التعديلات على Cloud Firestore Security Rules ما يصل إلى دقيقة واحدة للتأثير في طلبات البحث الجديدة المستمعين. ومع ذلك، قد يستغرق نشر التغييرات بالكامل مدة تصل إلى 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.

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