התחל בעבודה עם כללי האבטחה של 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 או באמצעות CLI Firebase.

עדכונים לכללי האבטחה של 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

הצעדים הבאים