Cloud Firestore के सुरक्षा नियमों का इस्तेमाल शुरू करना

Cloud Firestore के सुरक्षा नियमों की मदद से, आपको बेहतरीन उपयोगकर्ता अनुभव देने पर ध्यान दिया जा सकता है. इसके लिए, आपको इंफ़्रास्ट्रक्चर मैनेज करने या सर्वर साइड की पुष्टि करने और ऑथराइज़ेशन कोड लिखने की ज़रूरत नहीं पड़ती.

सुरक्षा नियम, ऐक्सेस कंट्रोल और डेटा की पुष्टि करने की सुविधा देते हैं. ये नियम आपको आसान और साफ़ तौर पर जानकारी देने वाले फ़ॉर्मैट में मिलते हैं. उपयोगकर्ताओं और उनके डेटा को सुरक्षित रखने वाले उपयोगकर्ता और भूमिका के हिसाब से ऐक्सेस सिस्टम बनाने के लिए, आपको Cloud Firestore के सुरक्षा नियमों के साथ Firebase से पुष्टि करने की सुविधा का इस्तेमाल करना होगा.

सुरक्षा के नियम वर्शन 2

मई 2019 से, Cloud Firestore के सुरक्षा नियमों का दूसरा वर्शन अब उपलब्ध है. नियमों के वर्शन 2 में, बार-बार होने वाले वाइल्डकार्ड {name=**} का तरीका बदलता है. अगर आपको कलेक्शन ग्रुप की क्वेरी इस्तेमाल करनी हैं, तो आपको वर्शन 2 का इस्तेमाल करना होगा. आपको वर्शन 2 में ऑप्ट-इन करने के लिए, अपने सुरक्षा नियमों की पहली लाइन rules_version = '2'; बनाना होगा:

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

लिखने के नियम

आपको डिफ़ॉल्ट डेटाबेस और अपने प्रोजेक्ट के हर अतिरिक्त डेटाबेस के लिए बनाए गए डेटा मॉडल के हिसाब से Cloud Firestore के सुरक्षा नियम लिखने और मैनेज करने होंगे.

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, नियमों का सिम्युलेटर उपलब्ध कराता है. इसका इस्तेमाल करके, नियमों के सेट की जांच की जा सकती है. Firebase कंसोल के Cloud Firestore सेक्शन में, नियम टैब से सिम्युलेटर को ऐक्सेस किया जा सकता है.

नियम सिम्युलेटर की मदद से, पुष्टि किए गए और पुष्टि नहीं किए गए लेखों को पढ़ने, लिखने, और मिटाने की सुविधा मिलती है. पुष्टि किए गए अनुरोध को सिम्युलेट करते समय, अलग-अलग कंपनियों से मिले पुष्टि करने वाले टोकन बनाए जा सकते हैं और उनकी झलक देखी जा सकती है. सिम्युलेट किए गए अनुरोध आपके एडिटर के नियमों सेट पर चलते हैं, न कि आपके डिप्लॉय किए गए मौजूदा नियमों-सेट पर.

नियम लागू करने के नियम

अपने मोबाइल ऐप्लिकेशन से Cloud Firestore का इस्तेमाल शुरू करने से पहले, आपको सुरक्षा के नियम लागू करने होंगे. Firebase सीएलआई या Cloud Firestore मैनेजमेंट REST API का इस्तेमाल करके, Firebase कंसोल में नियमों को डिप्लॉय किया जा सकता है.

Cloud Firestore के सुरक्षा नियमों में अपडेट होने में एक मिनट तक लग सकता है. इससे नई क्वेरी और सुनने वालों पर असर पड़ेगा. हालांकि, बदलावों को पूरी तरह से लागू करने और किसी भी ऐक्टिव लिसनर पर असर डालने में, 10 मिनट लग सकते हैं.

Firebase कंसोल का इस्तेमाल करना

अपने प्रोजेक्ट के डिफ़ॉल्ट डेटाबेस के लिए, नियमों के पहले सेट को सेट अप और लागू करने के लिए, Firebase कंसोल के Cloud Firestore सेक्शन में नियम टैब खोलें.

ऑनलाइन एडिटर में अपने नियम लिखें. इसके बाद, पब्लिश करें पर क्लिक करें.

Firebase सीएलआई का इस्तेमाल करना

Firebase सीएलआई का इस्तेमाल करके भी नियमों को डिप्लॉय किया जा सकता है. सीएलआई का इस्तेमाल करने पर, नियमों को ऐप्लिकेशन कोड के ज़रिए वर्शन कंट्रोल में रखा जा सकता है. साथ ही, डिप्लॉयमेंट की मौजूदा प्रोसेस के तहत, नियमों को डिप्लॉय किया जा सकता है.

// 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 rules for all configured databases
firebase deploy --only firestore

Cloud Storage के लिए बेहतर सुरक्षा पाएं

आपके ऐप्लिकेशन को Cloud Firestore की बेहतरीन डेटाबेस सुविधाओं और Cloud Storage की फ़ाइल स्टोरेज और मैनेजमेंट की सुविधाओं का फ़ायदा मिलेगा. इन प्रॉडक्ट को एक साथ इस्तेमाल करने से, ऐप्लिकेशन की सुरक्षा को भी मज़बूत बनाया जाता है, क्योंकि Cloud Firestore, अनुमति देने से जुड़ी ज़रूरी शर्तों को कैप्चर कर सकता है. इन शर्तों को Firebase के सुरक्षा नियमों के तहत इस्तेमाल किया जा सकता है. ज़्यादा जानकारी के लिए, Cloud Storage के लिए गाइड देखें.

अगले चरण