Catch up on highlights from Firebase at Google I/O 2023. Learn more

ابدأ مع قواعد أمان 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 من بيانات 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.

يمكن أن تستغرق تحديثات قواعد أمان 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 your .rules file
firebase deploy --only firestore:rules

تعزيز الأمن للتخزين السحابي

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

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