Firebase, सुरक्षा के नियमों को मैनेज करने के लिए कई टूल उपलब्ध कराता है. हर टूल, खास मामलों में काम आता है. साथ ही, हर टूल, Firebase के सुरक्षा नियमों को मैनेज करने वाले एक ही बैकएंड एपीआई का इस्तेमाल करता है.Security Rules
इसे लागू करने के लिए, किसी भी टूल का इस्तेमाल किया जा सकता है. हालांकि, मैनेजमेंट एपीआई:
- नियमों का सोर्स लेता है. यह नियमों का एक सेट होता है. आम तौर पर, यह एक कोड फ़ाइल होती है, जिसमें Firebase Security Rules स्टेटमेंट शामिल होते हैं.
- लिए गए सोर्स को, नियमों के सेट के तौर पर सेव करता है. इसमें बदलाव नहीं किया जा सकता.
- रिलीज़ में, नियमों के हर सेट के डिप्लॉयमेंट को ट्रैक करता है. Firebase के सुरक्षा नियमों की सुविधा वाली सेवाएं, सुरक्षित किए गए किसी संसाधन के लिए हर अनुरोध का आकलन करने के लिए, किसी प्रोजेक्ट की रिलीज़ को खोजती हैं.
- नियमों के सेट के सिंटैक्टिक और सिमैंटिक टेस्ट चलाने की सुविधा देता है.
Firebase CLI का इस्तेमाल करना
Firebase CLI की मदद से, स्थानीय सोर्स अपलोड किए जा सकते हैं और रिलीज़ डिप्लॉय की जा सकती हैं. सीएलआई के Firebase Local Emulator Suite की मदद से, सोर्स की पूरी स्थानीय जांच की जा सकती है.
सीएलआई का इस्तेमाल करके, अपने ऐप्लिकेशन कोड के साथ-साथ, नियमों को वर्शन कंट्रोल में रखा जा सकता है. साथ ही, मौजूदा डिप्लॉयमेंट प्रोसेस के तहत, नियमों को डिप्लॉय किया जा सकता है.
कॉन्फ़िगरेशन फ़ाइल जनरेट करना
Firebase CLI का इस्तेमाल करके, अपने Firebase प्रोजेक्ट को कॉन्फ़िगर करने पर, आपके प्रोजेक्ट डायरेक्ट्री में
.rules कॉन्फ़िगरेशन फ़ाइल बनती है. अपने Firebase प्रोजेक्ट को कॉन्फ़िगर करना शुरू करने के लिए, यह निर्देश इस्तेमाल करें:
Cloud Firestore
// Set up Firestore in your project directory, creates a .rules file firebase init firestore
Realtime Database
// Set up Realtime Database in your project directory, creates a .rules file firebase init database
Cloud Storage
// Set up Storage in your project directory, creates a .rules file firebase init storage
अपने नियमों में बदलाव करना और उन्हें अपडेट करना
.rules कॉन्फ़िगरेशन फ़ाइल में जाकर, सीधे अपने नियमों के सोर्स में बदलाव करें.
पक्का करें कि Firebase CLI में किए गए सभी बदलाव, Firebase कंसोल में दिखें. इसके अलावा, यह भी पक्का करें कि Firebase कंसोल या Firebase CLI में से किसी एक का इस्तेमाल करके, लगातार अपडेट किए जाएं. ऐसा न करने पर, Firebase कंसोल में किए गए कोई भी अपडेट ओवरराइट हो सकते हैं.
FirebaseFirebase इसलिए, अगर सुरक्षा के नियम तय किए जाते हैं या उनमें बदलाव किया जाता है तो Firebase कंसोल का इस्तेमाल करके, पक्का करें कि आपने अपने प्रोजेक्ट डायरेक्ट्री में तय किए गए नियमों को भी अपडेट किया हो.अपने अपडेट की जांच करना
Local Emulator Suite सुरक्षा के नियमों की सुविधा वाले सभी प्रॉडक्ट के लिए एम्युलेटर उपलब्ध कराता है. हर एम्युलेटर के लिए, सुरक्षा के नियमों का इंजन, नियमों का सिंटैक्टिक और सिमैंटिक, दोनों तरह से आकलन करता है. इस तरह, यह सुरक्षा के नियमों को मैनेज करने वाले एपीआई की ओर से दी जाने वाली सिंटैक्टिक जांच से बेहतर है.
अगर सीएलआई का इस्तेमाल किया जा रहा है, तो Suite, Firebase Security Rules जांच के लिए एक बेहतरीन टूल है. Local Emulator Suite का इस्तेमाल करके, अपने अपडेट की स्थानीय तौर पर जांच करें. साथ ही, पुष्टि करें कि आपके ऐप्लिकेशन के Security Rules आपकी उम्मीद के मुताबिक काम कर रहे हैं .
अपने अपडेट डिप्लॉय करना
अपने Security Rules को अपडेट करने और उनकी जांच करने के बाद, सोर्स को प्रोडक्शन में डिप्लॉय करें.
Cloud Firestore Security Rules के लिए, .rules फ़ाइलों को अपने डिफ़ॉल्ट और
नाम वाले अन्य डेटाबेस से जोड़ें. इसके लिए, अपनी
firebase.json फ़ाइल की समीक्षा करें और उसे अपडेट करें.
अलग से डिप्लॉय करने या उन्हें सामान्य डिप्लॉयमेंट प्रोसेस के तहत डिप्लॉय करने के लिए, इन निर्देशों का इस्तेमाल करें.Security Rules
Cloud Firestore
// Deploy rules for all databases configured in your firebase.json firebase deploy --only firestore:rules
// Deploy rules for the specified database configured in your firebase.json firebase deploy --only firestore:<databaseId>
Realtime Database
// Deploy your .rules file firebase deploy --only database
Cloud Storage
// Deploy your .rules file firebase deploy --only storage
Firebase कंसोल का इस्तेमाल करना
Firebase कंसोल से, सुरक्षा के नियमों के सोर्स में बदलाव भी किया जा सकता है और उन्हें रिलीज़ के तौर पर डिप्लॉय भी किया जा सकता है.Security RulesFirebase Firebase कंसोल के यूज़र इंटरफ़ेस (यूआई) में बदलाव करते समय, सिंटैक्टिक जांच की जाती है. वहीं, सुरक्षा के नियमों के Firebase Playground का इस्तेमाल करके, सिमैंटिक जांच की जा सकती है.Security Rules
अपने नियमों में बदलाव करना और उन्हें अपडेट करना
- Firebase कंसोल खोलें और अपना प्रोजेक्ट चुनें.
- इसके बाद, प्रॉडक्ट नेविगेशन से Realtime Database, Cloud Firestore या Storage चुनें. फिर, Security Rules एडिटर पर जाने के लिए, Rules पर क्लिक करें.
- एडिटर में जाकर, सीधे अपने नियमों में बदलाव करें.
अपने अपडेट की जांच करना
एडिटर के यूज़र इंटरफ़ेस (यूआई) में सिंटैक्स की जांच करने के अलावा, सिमैंटिक Security Rules व्यवहार की जांच की जा सकती है. इसके लिए, अपने प्रोजेक्ट के डेटाबेस और स्टोरेज के संसाधनों का इस्तेमाल किया जा सकता है, सीधे तौर पर Firebase कंसोल में, Security Rules Playground का इस्तेमाल करके. सुरक्षा के नियमों के Security Rules एडिटर में, नियमों का Playground स्क्रीन खोलें. इसके बाद, सेटिंग में बदलाव करें और चलाएं पर क्लिक करें. एडिटर में सबसे ऊपर, पुष्टि करने वाला मैसेज देखें.
अपने अपडेट डिप्लॉय करना
जब आपको लगे कि आपके अपडेट, आपकी उम्मीद के मुताबिक हैं, तो पब्लिश करें पर क्लिक करें.
Admin SDK का इस्तेमाल करना
आप Node.js के लिए Admin SDK का इस्तेमाल नियमों के सेट के लिए कर सकते हैं. प्रोग्राम के हिसाब से ऐक्सेस की इस सुविधा की मदद से, ये काम किए जा सकते हैं:
- नियमों को मैनेज करने के लिए, कस्टम टूल, स्क्रिप्ट, डैशबोर्ड, और सीआई/सीडी पाइपलाइन लागू करना.
- एक से ज़्यादा Firebase प्रोजेक्ट में, नियमों को ज़्यादा आसानी से मैनेज करना.
प्रोग्राम के हिसाब से नियमों को अपडेट करते समय, यह पक्का करना ज़रूरी है कि आपके ऐप्लिकेशन के ऐक्सेस कंट्रोल में कोई अनचाहा बदलाव न हो. अपना Admin SDK कोड लिखते समय, सुरक्षा को सबसे ज़्यादा प्राथमिकता दें. खास तौर पर, नियमों को अपडेट या डिप्लॉय करते समय.
एक और ज़रूरी बात यह है कि Firebase Security Rules रिलीज़ को पूरी तरह से लागू होने में कुछ मिनट लगते हैं. नियमों को डिप्लॉय करने के लिए, Admin SDK का इस्तेमाल करते समय, रेस कंडीशन से बचें. ऐसा न करने पर, आपका ऐप्लिकेशन उन नियमों पर तुरंत निर्भर हो सकता है जिनका डिप्लॉयमेंट अभी पूरा नहीं हुआ है. अगर आपके इस्तेमाल के उदाहरण के लिए, ऐक्सेस कंट्रोल के नियमों को बार-बार अपडेट करने की ज़रूरत पड़ती है, तो Cloud Firestore का इस्तेमाल करने वाले सॉल्यूशन आज़माएं. इसे बार-बार अपडेट होने के बावजूद, रेस कंडीशन को कम करने के लिए डिज़ाइन किया गया है.
इन सीमाओं पर भी ध्यान दें:
- सीरियलाइज़ किए जाने पर, नियमों का साइज़ 256 केआईबी से कम होना चाहिए. साथ ही, वे यूटीएफ-8 कोड में होने चाहिए.
- किसी प्रोजेक्ट में, डिप्लॉय किए गए नियमों के सेट की कुल संख्या 2,500 से ज़्यादा नहीं हो सकती. यह सीमा पूरी होने के बाद, नए नियम बनाने से पहले, आपको कुछ पुराने नियम मिटाने होंगे.
Cloud Storage या Cloud Firestore के नियमों के सेट बनाना और उन्हें डिप्लॉय करना
Admin SDK की मदद से, सुरक्षा के नियमों को मैनेज करने के लिए, आम तौर पर तीन अलग-अलग चरण शामिल हो सकते हैं:
- नियमों की फ़ाइल का सोर्स बनाना (ज़रूरी नहीं)
- नियमों का सेट बनाना
- नियमों के नए सेट को रिलीज़ करना या डिप्लॉय करना
एसडीके, Cloud Storage और Cloud Firestore सुरक्षा के नियमों के लिए, इन चरणों को एक ही एपीआई कॉल में शामिल करने का तरीका उपलब्ध कराता है. उदाहरण के लिए:
const source = `service cloud.firestore {
match /databases/{database}/documents {
match /carts/{cartID} {
allow create: if request.auth != null && request.auth.uid == request.resource.data.ownerUID;
allow read, update, delete: if request.auth != null && request.auth.uid == resource.data.ownerUID;
}
}
}`;
// Alternatively, load rules from a file
// const fs = require('fs');
// const source = fs.readFileSync('path/to/firestore.rules', 'utf8');
await admin.securityRules().releaseFirestoreRulesetFromSource(source);
Cloud Storage नियमों के लिए भी, releaseFirestoreRulesetFromSource() के साथ यही पैटर्न काम करता है.
इसके अलावा, नियमों की फ़ाइल को इन-मेमोरी ऑब्जेक्ट के तौर पर बनाया जा सकता है. साथ ही, इन इवेंट को बेहतर तरीके से कंट्रोल करने के लिए, नियमों के सेट को अलग से बनाया और डिप्लॉय किया जा सकता है. उदाहरण के लिए:
const rf = admin.securityRules().createRulesFileFromSource('firestore.rules', source);
const rs = await admin.securityRules().createRuleset(rf);
await admin.securityRules().releaseFirestoreRuleset(rs);
Realtime Database नियमों के सेट अपडेट करना
Realtime Database के नियमों के सेट अपडेट करने के लिए, Admin SDK की मदद से, admin.database के getRules() और
setRules() तरीकों का इस्तेमाल करें. नियमों के सेट को JSON फ़ॉर्मैट में या टिप्पणियों के साथ स्ट्रिंग के तौर पर वापस पाया जा सकता है.
नियमों का सेट अपडेट करने के लिए:
const source = `{
"rules": {
"scores": {
".indexOn": "score",
"$uid": {
".read": "$uid == auth.uid",
".write": "$uid == auth.uid"
}
}
}
}`;
await admin.database().setRules(source);
नियमों के सेट मैनेज करना
नियमों के बड़े सेट को मैनेज करने के लिए, Admin SDK की मदद से, मौजूदा सभी नियमों की सूची देखी जा सकती है
admin.securityRules().listRulesetMetadata का इस्तेमाल करके. उदाहरण के लिए:
const allRulesets = [];
let pageToken = null;
while (true) {
const result = await admin.securityRules().listRulesetMetadata(pageToken: pageToken);
allRulesets.push(...result.rulesets);
pageToken = result.nextPageToken;
if (!pageToken) {
break;
}
}
बहुत बड़े डिप्लॉयमेंट के लिए, नियमों के सेट की सीमा 2,500 तक पहुंच सकती है. ऐसे में, एक तय समय के बाद सबसे पुराने नियमों को मिटाने के लिए, लॉजिक बनाया जा सकता है. उदाहरण के लिए, 30 दिनों से ज़्यादा समय से डिप्लॉय किए गए सभी नियमों के सेट को मिटाने के लिए:
const thirtyDays = new Date(Date.now() - THIRTY_DAYS_IN_MILLIS);
const promises = [];
allRulesets.forEach((rs) => {
if (new Date(rs.createTime) < thirtyDays) {
promises.push(admin.securityRules().deleteRuleset(rs.name));
}
});
await Promise.all(promises);
console.log(`Deleted ${promises.length} rulesets.`);
REST API का इस्तेमाल करना
ऊपर बताए गए टूल, अलग-अलग वर्कफ़्लो के लिए सही हैं. इनमें, आपके प्रोजेक्ट में मौजूद एक से ज़्यादा Cloud Firestore डेटाबेस के लिए, Firebase Security Rules को मैनेज करना शामिल है. हालांकि, हो सकता है कि आपको मैनेजमेंट एपीआई का इस्तेमाल करके, Firebase Security Rules को मैनेज और डिप्लॉय करना हो. मैनेजमेंट एपीआई, आपको सबसे ज़्यादा फ़्लेक्सिबिलिटी देता है.
इन सीमाओं पर भी ध्यान दें:
- सीरियलाइज़ किए जाने पर, नियमों का साइज़ 256 केआईबी से कम होना चाहिए. साथ ही, वे यूटीएफ-8 कोड में होने चाहिए.
- किसी प्रोजेक्ट में, डिप्लॉय किए गए नियमों के सेट की कुल संख्या 2,500 से ज़्यादा नहीं हो सकती. यह सीमा पूरी होने के बाद, नए नियम बनाने से पहले, आपको कुछ पुराने नियम मिटाने होंगे.
REST का इस्तेमाल करके, Cloud Firestore या Cloud Storage नियमों के सेट बनाना और उन्हें डिप्लॉय करना
इस सेक्शन में दिए गए उदाहरणों में, Firestore Security Rules का इस्तेमाल किया गया है. हालांकि, ये Cloud Storage Security Rules पर भी लागू होते हैं.
उदाहरणों में, एपीआई कॉल करने के लिए cURL का भी इस्तेमाल किया गया है. सेटअप करने और पुष्टि करने वाले टोकन पास करने के चरण शामिल नहीं किए गए हैं. रेफ़रंस से जुड़े दस्तावेज़ में इंटिग्रेट किए गए एपीआई एक्सप्लोरर का इस्तेमाल करके, इस एपीआई के साथ एक्सपेरिमेंट किया जा सकता है.
मैनेजमेंट एपीआई का इस्तेमाल करके, नियमों का सेट बनाने और उसे डिप्लॉय करने के लिए, आम तौर पर ये चरण अपनाए जाते हैं:
- नियमों की फ़ाइल के सोर्स बनाना
- नियमों का सेट बनाना
- नियमों के नए सेट को रिलीज़ (डिप्लॉय) करना.
कोई सोर्स बनाना
मान लें कि आप अपने secure_commerce Firebase प्रोजेक्ट पर काम कर रहे हैं और अपने प्रोजेक्ट में मौजूद east_store नाम के डेटाबेस में, Cloud Firestore Security Rules को डिप्लॉय करना चाहते हैं.
firestore.rules फ़ाइल में, इन नियमों को लागू किया जा सकता है.
service cloud.firestore {
match /databases/{database}/documents {
match /{document=**} {
allow read, write: if false;
}
}
}
नियमों का सेट बनाना
अब इस फ़ाइल के लिए, base64 कोड में एनकोड किया गया फ़िंगरप्रिंट जनरेट करें. इसके बाद, projects.rulesets.create REST कॉल का इस्तेमाल करके, नियमों का सेट बनाने के लिए ज़रूरी पेलोड को भरने के लिए, इस फ़ाइल में मौजूद सोर्स का इस्तेमाल किया जा सकता है. यहां, REST पेलोड में firestore.rules का कॉन्टेंट डालने के लिए, cat निर्देश का इस्तेमाल करें.
ट्रैक करने के लिए, इसे अपने east_store डेटाबेस से जोड़ने के लिए, attachment_point को east_store पर सेट करें.
curl -X POST -d '{
"source": {
"files": [
{
"content": "' $(cat storage.rules) '",
"name": "firestore.rules",
"fingerprint": <sha fingerprint>
},
"attachment_point": "firestore.googleapis.com/databases/east_store"
]
}
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets'एपीआई, पुष्टि करने का जवाब और नियमों के सेट का नाम दिखाता है. उदाहरण के लिए, projects/secure_commerce/rulesets/uuid123.
नियमों के सेट को रिलीज़ (डिप्लॉय) करना
अगर नियमों का सेट मान्य है, तो आखिरी चरण है कि नियमों के नए सेट को नाम वाली रिलीज़ में डिप्लॉय किया जाए.
curl -X POST -d '{
"name": "projects/secure_commerce/releases/cloud.firestore/east_store" ,
"rulesetName": "projects/secure_commerce/rulesets/uuid123"
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/releases'ध्यान रखें कि Firebase Security Rules रिलीज़ को पूरी तरह से लागू होने में कुछ मिनट लगते हैं. डिप्लॉय करने के लिए, मैनेजमेंट REST API का इस्तेमाल करते समय, रेस कंडीशन से बचें. ऐसा न करने पर, आपका ऐप्लिकेशन उन नियमों पर तुरंत निर्भर हो सकता है जिनका डिप्लॉयमेंट अभी पूरा नहीं हुआ है.
REST का इस्तेमाल करके, Realtime Database नियमों के सेट अपडेट करना
Realtime Database सुरक्षा के नियमों को मैनेज करने के लिए अपना REST इंटरफ़ेस उपलब्ध कराता है.Security Rules REST के ज़रिए, Firebase को मैनेज करना देखेंRealtime Database Security Rules.
REST का इस्तेमाल करके, नियमों के सेट मैनेज करना
नियमों के बड़े डिप्लॉयमेंट को मैनेज करने के लिए, मैनेजमेंट एपीआई, नियमों के सेट और रिलीज़ बनाने के लिए REST तरीके के अलावा, ये तरीके भी उपलब्ध कराता है:
- नियमों के सेट की सूची देखना, उन्हें पाना, और मिटाना
- नियमों की रिलीज़ की सूची देखना, उन्हें पाना, और मिटाना
बहुत बड़े डिप्लॉयमेंट के लिए, नियमों के सेट की सीमा 2,500 तक पहुंच सकती है. ऐसे में, एक तय समय के बाद सबसे पुराने नियमों को मिटाने के लिए, लॉजिक बनाया जा सकता है. उदाहरण के लिए, 30 दिनों से ज़्यादा समय से डिप्लॉय किए गए सभी नियमों के सेट को मिटाने के लिए, projects.rulesets.list तरीके को कॉल किया जा सकता है. इसके बाद, Ruleset ऑब्जेक्ट की JSON सूची को उनके createTime की के आधार पर पार्स किया जा सकता है. फिर, ruleset_id के आधार पर, संबंधित नियमों के सेट पर project.rulesets.delete को कॉल किया जा सकता है.
REST का इस्तेमाल करके, अपने अपडेट की जांच करना
आखिर में, मैनेजमेंट एपीआई की मदद से, आपके प्रोडक्शन प्रोजेक्ट में मौजूद Cloud Firestore और Cloud Storage संसाधनों पर, सिंटैक्टिक और सिमैंटिक टेस्ट चलाए जा सकते हैं.
.एपीआई के इस कॉम्पोनेंट की मदद से जांच करने में ये चरण शामिल हैं:
TestSuiteJSON ऑब्जेक्ट तय करना, ताकिTestCaseऑब्जेक्ट के सेट को दिखाया जा सकेTestSuiteसबमिट करना- वापस किए गए
TestResultऑब्जेक्ट को पार्स करना
आइए, testcase.json फ़ाइल में, एक TestCase के साथ TestSuite ऑब्जेक्ट तय करें. इस उदाहरण में, हम उन नियमों पर टेस्ट चलाने के लिए, टेस्ट सुइट के साथ-साथ, REST पेलोड में, Security Rules
भाषा का सोर्स इनलाइन पास करते हैं. हम नियमों के आकलन की उम्मीद तय करते हैं. साथ ही, क्लाइंट का वह अनुरोध तय करते हैं जिसके आधार पर नियमों के सेट की जांच की जानी है. यह भी तय किया जा सकता है कि टेस्ट रिपोर्ट कितनी
पूरी हो. इसके लिए, "FULL" वैल्यू का इस्तेमाल करें. इससे पता चलता है कि रिपोर्ट में, सभी
Security Rules भाषा के एक्सप्रेशन के नतीजे शामिल होने चाहिए. इनमें वे
एक्सप्रेशन भी शामिल हैं जो अनुरोध से मेल नहीं खाते.
{ "source": { "files": [ { "name": "firestore.rules", "content": "service cloud.firestore { match /databases/{database}/documents { match /users/{userId}{ allow read: if (request.auth.uid == userId); } function doc(subpath) { return get(/databases/$(database)/documents/$(subpath)).data; } function isAccountOwner(accountId) { return request.auth.uid == accountId || doc(/users/$(request.auth.uid)).accountId == accountId; } match /licenses/{accountId} { allow read: if isAccountOwner(accountId); } } }" } ] }, "testSuite": { "testCases": [ { "expectation": "ALLOW", "request": { "auth": {"uid": "123"}, "path": "/databases/(default)/documents/licenses/abcd", "method": "get"}, "functionMocks": [ { "function": "get", "args": [{"exact_value": "/databases/(default)/documents/users/123"}], "result": {"value": {"data": {"accountId": "abcd"}}} } ] } ] } }
इसके बाद, हम आकलन के लिए, projects.test तरीके से इस TestSuite को सबमिट कर सकते हैं.
curl -X POST -d '{
' $(cat testcase.json) '
}' 'https://firebaserules.googleapis.com/v1/projects/secure_commerce/rulesets/uuid123:test'वापस किया गया TestReport (जिसमें टेस्ट के सफल/असफल होने की स्थिति, डीबग मैसेज की सूची, नियमों के उन एक्सप्रेशन की सूची शामिल होती है जिनकी जांच की गई है, और उनके आकलन की रिपोर्ट शामिल होती है) स्थिति के सफल होने की पुष्टि करेगा. इससे पता चलेगा कि ऐक्सेस की अनुमति सही तरीके से दी गई है.
अलग-अलग सेवाओं के लिए, अनुमतियां मैनेज करना Cloud Storage Security Rules
अगर Cloud Storage Security Rules बनाए जाते हैं, जो सुरक्षा की शर्तों का आकलन करने के लिए, Cloud Firestore दस्तावेज़ के कॉन्टेंट का इस्तेमाल करते हैं, तो आपको Firebase कंसोल या Firebase CLI में, दोनों प्रॉडक्ट को कनेक्ट करने की अनुमतियां चालू करने के लिए कहा जाएगा.
अगर अलग-अलग सेवाओं के लिए, सुरक्षा की सुविधा बंद करने का फ़ैसला लिया जाता है, तो:
सबसे पहले, सुविधा बंद करने से पहले, अपने नियमों में बदलाव करें. साथ ही, Cloud Firestore को ऐक्सेस करने के लिए, Security Rules फ़ंक्शन का इस्तेमाल करने वाले सभी स्टेटमेंट हटाएं. ऐसा न करने पर, सुविधा बंद होने के बाद, Security Rules आकलन की वजह से , आपके स्टोरेज के अनुरोध पूरे नहीं हो पाएंगे.
रोल रद्द करने के लिए, Cloud guide for revoking roles में दिए गए निर्देशों का पालन करके, "Firebase Rules Firestore Service Agent" रोल मिटाने के लिए, Google Cloud Console में IAM पेज का इस्तेमाल करें.
अगली बार, Firebase CLI या Firebase कंसोल से, अलग-अलग सेवाओं के लिए, नियमों को सेव करने पर, आपको इस सुविधा को फिर से चालू करने के लिए कहा जाएगा.