Check out what’s new from Firebase@ Google I/O 2021, and join our alpha program for early access to the new Remote Config personalization feature. 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 מספק סימולטור כללים שבו אתה יכול להשתמש כדי לבדוק את מערכת הכללים שלך. אתה יכול לגשת לסימולטור מהכרטיסייה כללים בקטע Firestore בענן במסוף Firebase.

סימולטור הכללים מאפשר לדמות קריאות, כתיבה ומחקים מאומתים ולא מאומתים. כאשר אתה מדמה בקשה מאומתת, אתה יכול לבנות ולהציג תצוגה מקדימה של אסימוני אימות מספקים שונים. בקשות מדומות פועלות כנגד ערכת הכללים בעורך שלך, ולא ערכת הכללים הפרוסה שלך כרגע.

פריסת כללים

לפני שתוכל להתחיל להשתמש בענן Firestore מהאפליקציה הניידת שלך, יהיה עליך לפרוס כללי אבטחה. ניתן לפרוס כללים במסוף Firebase או באמצעות ה- CLI של Firebase.

עדכונים לכללי האבטחה של Cloud Firestore יכולים להימשך עד דקה עד שהם משפיעים על שאילתות ומאזינים חדשים. עם זאת, יכולים להימשך עד 10 דקות להפיץ את השינויים באופן מלא ולהשפיע על כל המאזינים הפעילים.

השתמש במסוף Firebase

כדי להגדיר ולפרוס את קבוצת הכללים הראשונה שלך, פתח את הכרטיסייה כללים במקטע Cloud Firestore במסוף Firebase.

כתוב את הכללים שלך בעורך המקוון, ואז לחץ על פרסם .

השתמש ב- CLI של Firebase

ניתן גם לפרוס כללים באמצעות ה- CLI של Firebase . השימוש ב- 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

הצעדים הבאים