ابدأ مع قواعد أمان 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 CLI، أو باستخدام REST API لإدارة Cloud Firestore.

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

استخدم وحدة تحكم Firebase

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

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

استخدم Firebase CLI

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

// 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 Firestore وميزات تخزين الملفات وإدارتها في Cloud Storage. عند استخدامها معًا، توفر هذه المنتجات أيضًا أمانًا معززًا للتطبيقات، حيث يمكن لـ Cloud Firestore التقاط متطلبات الترخيص التي يمكن استخدامها بواسطة قواعد أمان Firebase لكلا المنتجين. للمزيد، راجع دليل التخزين السحابي .

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