ابدأ مع قواعد أمان Cloud Firestore

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

توفر قواعد الأمان التحكم في الوصول والتحقق من صحة البيانات بتنسيق بسيط ولكنه معبر. لبناء المستعمل القاعدة وأنظمة الوصول القائم على الدور الذي حفاظ على البيانات الخاصة بالمستخدمين آمنة، تحتاج إلى استخدام مصادقة Firebase مع سحابة قواعد الأمن Firestore.

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

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

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

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

تتكون كل قواعد الأمن 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 محاكيًا للقواعد يمكنك استخدامه لاختبار مجموعة القواعد الخاصة بك. يمكنك الوصول إلى محاكاة من علامة التبويب قواعد في قسم سحابة Firestore من وحدة التحكم Firebase.

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

نشر القواعد

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

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

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

لإعداد ونشر أول مجموعة من القواعد الخاصة بك، افتح علامة التبويب قواعد في قسم سحابة 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

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