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

הצעדים הבאים