Firebase के सुरक्षा नियमों को मैनेज और डिप्लॉय करें

Firebase आपको अपने नियमों को मैनेज करने के लिए कई टूल देता है. हर टूल खास मामलों में काम का होता है. साथ ही, हर टूल एक ही बैकएंड Firebase सुरक्षा नियम मैनेजमेंट एपीआई का इस्तेमाल करता है.

चाहे किसी भी टूल का इस्तेमाल करके, इसे शुरू किया जा रहा हो, management API:

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

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

Firebase सीएलआई का इस्तेमाल करके, लोकल सोर्स अपलोड किए जा सकते हैं और रिलीज़ डिप्लॉय की जा सकती हैं. सीएलआई के Firebase लोकल एम्युलेटर सुइट की मदद से, सोर्स की पूरी स्थानीय जांच की जा सकती है.

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

कॉन्फ़िगरेशन फ़ाइल जनरेट करना

Firebase सीएलआई का इस्तेमाल करके अपना 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 सीएलआई में किए गए बदलाव, Firebase कंसोल में दिखें या Firebase कंसोल या Firebase सीएलआई का इस्तेमाल करके लगातार अपडेट किए जाएं. नहीं तो, Firebase कंसोल में किए गए किसी भी अपडेट को ओवरराइट किया जा सकता है.

अपडेट की जांच करना

Local Emulator Suite में, सुरक्षा के नियमों वाले सभी प्रॉडक्ट के लिए एम्युलेटर दिए गए हैं. हर एम्युलेटर के लिए, सुरक्षा नियम का इंजन, नियमों के वाक्य और सिमैंटिक, दोनों ही जांच करता है. इसलिए, Security Rules Management API की उपलब्ध कराई जाने वाली वाक्य जांच से ज़्यादा बेहतर हो जाता है.

अगर सीएलआई का इस्तेमाल किया जा रहा है, तो Firebase सुरक्षा नियमों की जांच करने के लिए, यह एक बेहतरीन टूल है. अपने अपडेट की स्थानीय तौर पर जांच करने के लिए, लोकल एम्युलेटर सुइट का इस्तेमाल करें. साथ ही, यह पुष्टि करें कि आपके ऐप्लिकेशन के नियम, आपकी उम्मीद के मुताबिक हैं.

अपने अपडेट डिप्लॉय करें

अपने नियमों को अपडेट और टेस्ट करने के बाद, सोर्स को प्रोडक्शन में डिप्लॉय करें.

Cloud Firestore के सुरक्षा नियमों के लिए, अपनी firebase.json फ़ाइल की समीक्षा करके और उसे अपडेट करके, .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 कंसोल से, रिलीज़ के तौर पर डिप्लॉय करने का विकल्प भी है. Firebase कंसोल के यूज़र इंटरफ़ेस (यूआई) में बदलाव करते समय, सिंटैक्स की टेस्टिंग की जाती है. वहीं, सिमैंटिक टेस्टिंग, 'रूल प्लेग्राउंड' का इस्तेमाल करके उपलब्ध होती है.

अपने नियमों में बदलाव करना और उन्हें अपडेट करना

  1. Firebase कंसोल खोलें और अपना प्रोजेक्ट चुनें.
  2. इसके बाद, प्रॉडक्ट नेविगेशन से रीयलटाइम डेटाबेस, Cloud Firestore या स्टोरेज चुनें. इसके बाद, 'नियम' एडिटर पर जाने के लिए नियम पर क्लिक करें.
  3. सीधे एडिटर में जाकर अपने नियमों में बदलाव करें.

अपडेट की जांच करना

एडिटर यूज़र इंटरफ़ेस (यूआई) में सिंटैक्स की जांच करने के अलावा, अपने प्रोजेक्ट के डेटाबेस और स्टोरेज संसाधनों का इस्तेमाल करके, सीधे Firebase कंसोल में रूल प्लेग्राउंड का इस्तेमाल करके, सिमैंटिक नियमों के व्यवहार की जांच की जा सकती है. 'नियम' एडिटर में रूल प्लेग्राउंड स्क्रीन खोलें, सेटिंग में बदलाव करें, और चलाएं पर क्लिक करें. एडिटर के सबसे ऊपर, पुष्टि करने वाला मैसेज देखें.

अपने अपडेट डिप्लॉय करें

जब आप संतुष्ट हो जाएं कि आपके अपडेट आपकी उम्मीद के मुताबिक हैं, तो पब्लिश करें पर क्लिक करें.

एडमिन SDK टूल का इस्तेमाल करें

आपके पास Node.js नियमसेट के लिए, एडमिन SDK का इस्तेमाल करने का विकल्प है. प्रोग्राम के हिसाब से, अपने-आप होने वाली प्रोसेस के इस ऐक्सेस की मदद से:

  • नियमों को मैनेज करने के लिए, पसंद के मुताबिक टूल, स्क्रिप्ट, डैशबोर्ड, और सीआई/सीडी पाइपलाइन लागू करें.
  • कई Firebase प्रोजेक्ट में, नियमों को ज़्यादा आसानी से मैनेज करें.

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

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

इन सीमाओं पर भी ध्यान दें:

  • क्रम से लगाए जाने पर नियम, UTF-8 कोड में बदले गए टेक्स्ट के 256 KiB से कम होने चाहिए.
  • किसी प्रोजेक्ट में ज़्यादा से ज़्यादा 2500 लागू नियम सेट हो सकते हैं. यह सीमा पूरी होने के बाद, नए नियम बनाने से पहले आपको कुछ पुराने नियम मिटाने होंगे.

Cloud Storage या Cloud Firestore के नियम बनाना और डिप्लॉय करना

एडमिन SDK की मदद से सुरक्षा के नियमों को मैनेज करने के लिए, सामान्य वर्कफ़्लो में तीन चरण शामिल हो सकते हैं:

  1. नियमों वाली फ़ाइल का सोर्स बनाएं (ज़रूरी नहीं)
  2. नियमसेट बनाना
  3. नए नियमसेट को रिलीज़ या डिप्लॉय करें

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);

यही पैटर्न, releaseFirestoreRulesetFromSource() के साथ Cloud Storage के नियमों के लिए काम करता है.

इसके अलावा, नियम फ़ाइल को मेमोरी में मौजूद ऑब्जेक्ट के तौर पर बनाया जा सकता है, नियमसेट बनाया जा सकता है, और इन इवेंट पर ज़्यादा बारीकी से कंट्रोल करने के लिए, नियमसेट को अलग से डिप्लॉय किया जा सकता है. उदाहरण के लिए:

    const rf = admin.securityRules().createRulesFileFromSource('firestore.rules', source);
    const rs = await admin.securityRules().createRuleset(rf);
    await admin.securityRules().releaseFirestoreRuleset(rs);

रीयलटाइम डेटाबेस के नियम सेट अपडेट करना

एडमिन 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);

नियम-सेट मैनेज करें

बड़े नियमों के सेट को मैनेज करने के लिए, एडमिन 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 सुरक्षा नियमों का मैनेजमेंट शामिल है. लेकिन हो सकता है कि आप Management API का इस्तेमाल करके, Firebase सुरक्षा नियमों को मैनेज और डिप्लॉय करना चाहें. मैनेजमेंट एपीआई से आपको अपने हिसाब से काम करने की सुविधा मिलती है.

इन सीमाओं पर भी ध्यान दें:

  • क्रम से लगाए जाने पर नियम, UTF-8 कोड में बदले गए टेक्स्ट के 256 KiB से कम होने चाहिए.
  • किसी प्रोजेक्ट में ज़्यादा से ज़्यादा 2500 लागू नियम सेट हो सकते हैं. यह सीमा पूरी होने के बाद, नए नियम बनाने से पहले आपको कुछ पुराने नियम मिटाने होंगे.

REST के साथ Cloud Firestore या Cloud Storage नियम बनाएं और डिप्लॉय करें

इस सेक्शन में दिए गए उदाहरणों में Firestore के नियमों का इस्तेमाल किया गया है. हालांकि, वे Cloud Storage के नियमों पर भी लागू होते हैं.

इन उदाहरणों में, एपीआई कॉल करने के लिए cURL का भी इस्तेमाल किया गया है. पुष्टि करने वाले टोकन को सेट अप और पास करने के चरण शामिल नहीं किए जाते. इस एपीआई को इस्तेमाल करने के लिए, रेफ़रंस दस्तावेज़ के साथ इंटिग्रेट किए गए एपीआई एक्सप्लोरर का इस्तेमाल किया जा सकता है.

मैनेजमेंट एपीआई का इस्तेमाल करके नियमसेट बनाने और डिप्लॉय करने के सामान्य चरण ये हैं:

  1. नियमों वाली फ़ाइल के सोर्स बनाएं
  2. नियमसेट बनाना
  3. नए नियमसेट रिलीज़ (डिप्लॉय) करें.

सोर्स बनाएं

मान लें कि आप अपने secure_commerce Firebase प्रोजेक्ट पर काम कर रहे हैं और अपने east_store प्रोजेक्ट के डेटाबेस में लॉक-डाउन Cloud Firestore नियमों को डिप्लॉय करना चाहते हैं.

इन नियमों को firestore.rules फ़ाइल में लागू किया जा सकता है.

service cloud.firestore {
  match /databases/{database}/documents {
    match /{document=**} {
      allow read, write: if false;
    }
  }
}

नियमसेट बनाना

अब इस फ़ाइल के लिए, base64 कोड में बदला गया फ़िंगरप्रिंट जनरेट करें. इसके बाद, इस फ़ाइल में सोर्स का इस्तेमाल करके, projects.rulesets.create REST कॉल के साथ नियम सेट करने के लिए ज़रूरी पेलोड को पॉप्युलेट किया जा सकता है. यहां firestore.rules के कॉन्टेंट को REST पेलोड में डालने के लिए, 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 के सुरक्षा नियमों की रिलीज़ को पूरी तरह से लागू होने में कुछ मिनट लगते हैं. डिप्लॉयमेंट के लिए मैनेजमेंट REST API का इस्तेमाल करते समय, रेस की उन स्थितियों से बचें जिनमें आपका ऐप्लिकेशन तुरंत उन नियमों पर निर्भर करता है जिनका डिप्लॉयमेंट अभी पूरा नहीं हुआ है.

REST के साथ रीयल टाइम डेटाबेस के नियम अपडेट करें

रीयलटाइम डेटाबेस, नियमों को मैनेज करने के लिए अपना REST इंटरफ़ेस उपलब्ध कराता है. REST के ज़रिए Firebase रीयल टाइम डेटाबेस के नियमों को मैनेज करना देखें.

REST के साथ नियम सेट मैनेज करें

बड़े नियमों के डिप्लॉयमेंट को मैनेज करने में मदद करने के लिए, मैनेजमेंट एपीआई कुछ तरीके उपलब्ध कराता है. जैसे, नियमसेट और रिलीज़ बनाने के लिए REST करने के तरीके के अलावा, यह एपीआई ये तरीके भी उपलब्ध कराता है:

  • नियम सूची बनाएं, पाएं, और मिटाएं
  • रिलीज़ नियमों की सूची बनाना, उन्हें पाना, और मिटाना

जो बहुत बड़े डिप्लॉयमेंट, समय के साथ 2,500 रूलसेट की सीमा तक पहुंच जाते हैं उनके लिए, लॉजिक बनाकर किसी तय टाइम साइकल में सबसे पुराने नियमों को मिटाया जा सकता है. उदाहरण के लिए, 30 दिनों से ज़्यादा समय के लिए डिप्लॉय किए गए सभी नियमों को मिटाने के लिए, projects.rulesets.list तरीके को कॉल किया जा सकता है. साथ ही, Ruleset ऑब्जेक्ट की createTime कुंजियों पर JSON सूची को पार्स किया जा सकता है. इसके बाद, इससे जुड़े नियमों के सेट पर ruleset_id तक project.rulesets.delete को कॉल किया जा सकता है.

REST की मदद से, अपडेट की जांच करें

मैनेजमेंट एपीआई से आपको अपने प्रोडक्शन प्रोजेक्ट में, Cloud Firestore और Cloud Storage संसाधनों पर वाक्य और सिमैंटिक टेस्ट करने की सुविधा मिलती है.

एपीआई के इस कॉम्पोनेंट की मदद से टेस्ट करने में ये शामिल होते हैं:

  1. TestCase ऑब्जेक्ट का सेट दिखाने के लिए, TestSuite JSON ऑब्जेक्ट के बारे में जानकारी
  2. TestSuite सबमिट किया जा रहा है
  3. पार्स करने से TestResult ऑब्जेक्ट मिले

आइए, किसी testcase.json फ़ाइल में एक TestCase वाले TestSuite ऑब्जेक्ट के बारे में बताते हैं. इस उदाहरण में, हम उन नियमों को चलाने के लिए टेस्ट सुइट के साथ-साथ REST पेलोड के साथ नियम की भाषा के सोर्स को इनलाइन करते हैं. हम नियमों के आकलन की उम्मीद के साथ-साथ क्लाइंट का अनुरोध भी तय करते हैं, जिसके आधार पर नियमों की जांच की जानी है. "FULL" मान का इस्तेमाल करके यह भी तय किया जा सकता है कि टेस्ट रिपोर्ट को पूरा कैसे किया गया है. यह बताने के लिए कि सभी नियमों के भाषा के एक्सप्रेशन को रिपोर्ट में शामिल किया जाना चाहिए इसमें वे एक्सप्रेशन भी शामिल हैं जो अनुरोध से मेल नहीं खाते.

 {
  "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 सुरक्षा नियमों के लिए अनुमतियां मैनेज करना

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

अगर ऐसी क्रॉस-सर्विस सुरक्षा बंद करनी है, तो:

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

  2. "Firebase के नियम Firestore सेवा एजेंट" की भूमिका मिटाने के लिए, Google Cloud Console में IAM पेज का इस्तेमाल करें. इसके लिए, भूमिकाओं को रद्द करने के लिए Cloud गाइड का इस्तेमाल करें.

अगली बार Firebase सीएलआई या Firebase कंसोल से क्रॉस-सेवा नियमों को सेव करने पर, आपको इस सुविधा को फिर से चालू करने के लिए कहा जाएगा.