नियमोंटेस्ट एनवायरमेंट का इंटरफ़ेस

नियमों की इकाई के टेस्ट एनवायरमेंट को कंट्रोल करने के लिए इस्तेमाल किया जाने वाला ऑब्जेक्ट. इसका इस्तेमाल, पुष्टि करने की अलग-अलग स्थितियों के लिए RulesTestContext बनाने के लिए किया जा सकता है.

हस्ताक्षर:

export interface RulesTestEnvironment 

प्रॉपर्टी

प्रॉपर्टी टाइप ब्यौरा
एम्युलेटर { डेटाबेस?: HostAndPort; फ़ायरस्टोर?: HostAndPort; स्टोरेज?: HostAndPort; } एम्युलेटर कॉन्फ़िगरेशन की रीड-ओनली कॉपी, जिसके बारे में बताया गया है या जो टेस्ट एनवायरमेंट बनाते समय खोजी गई थी.
projectId स्ट्रिंग टेस्ट एनवायरमेंट बनाते समय चुना गया या खोजा गया प्रोजेक्ट आईडी.

तरीके

तरीका ब्यौरा
authenticatedContext(user_id, tokenOptions) ऐसा RulesTestContext बनाएं जो पुष्टि किए गए Firebase पर पुष्टि करने वाले उपयोगकर्ता की तरह काम करता हो.इस कॉन्टेक्स्ट के आधार पर बनाए गए अनुरोधों में, Firebase की पुष्टि करने वाला नकली टोकन अटैच किया जाएगा.
क्लीनअप() जांच कोड के आखिर में, क्लीनअप फ़ंक्शन को कॉल करें. टेस्ट एनवायरमेंट में बनाए गए सभी फ़ैन टेस्ट कॉन्टेक्स्ट को बंद करें और मौजूदा संसाधनों को खाली करें, ताकि बाहर निकलने का हूबहू इस्तेमाल हो सके.इस तरीके से, एम्युलेटर की स्थिति में किसी तरह का बदलाव नहीं होता. अलग-अलग टेस्ट के बीच डेटा रीसेट करने के लिए, clearDatabase(), clearFirestore(), और clearStorage() देखें.
clearDatabase() रीयल टाइम डेटाबेस एम्युलेटर नेमस्पेस में पूरा डेटा मिटाएं.
clearFirestore() Firestore से डेटा मिटाएं जो Firestore एम्युलेटर में projectId से जुड़ा है.
clearStorage() स्टोरेज एम्युलेटर में, सभी बकेट में स्टोरेज फ़ाइलें और मेटाडेटा मिटाएं.
unauthenticatedContext() ऐसा RulesTestContext बनाएं जो Firebase से पुष्टि के ज़रिए लॉग इन न किए गए क्लाइंट की तरह काम करता हो.मिलते-जुलते संदर्भ से किए गए अनुरोधों में Firebase पुष्टि टोकन अटैच नहीं होगा.
withSecurityRulesDisabled(callback)

RulesTestEnvironment.emulators

एम्युलेटर कॉन्फ़िगरेशन की रीड-ओनली कॉपी, जिसके बारे में बताया गया है या जो टेस्ट एनवायरमेंट बनाते समय खोजी गई थी.

हस्ताक्षर:

readonly emulators: {
        database?: HostAndPort;
        firestore?: HostAndPort;
        storage?: HostAndPort;
    };

RulesTestEnvironment.projectId

टेस्ट एनवायरमेंट बनाते समय चुना गया या खोजा गया प्रोजेक्ट आईडी.

हस्ताक्षर:

readonly projectId: string;

RulesTestEnvironment.authenticatedContext()

ऐसा RulesTestContext बनाएं जो Firebase की पुष्टि किए गए उपयोगकर्ता की तरह काम करे.

दिए गए कॉन्टेक्स्ट की मदद से बनाए गए अनुरोधों में, Firebase की पुष्टि करने वाला मॉक टोकन अटैच किया जाएगा.

हस्ताक्षर:

authenticatedContext(user_id: string, tokenOptions?: TokenOptions): RulesTestContext;

पैरामीटर

पैरामीटर टाइप ब्यौरा
user_id स्ट्रिंग उपयोगकर्ता का यूज़र आईडी. इससे टोकन पर "user_id" और "sub" की वैल्यू तय होती है
tokenOptions TokenOptions Firebase में पुष्टि किए जाने वाले टोकन पेलोड के लिए, पसंद के मुताबिक दावे या बदलाव

लौटाए जाने वाले प्रॉडक्ट:

RulesTestContext

उदाहरण

const alice = testEnv.authenticatedContext('alice');
await assertSucceeds(getDoc(alice.firestore(), '/doc/readable/by/alice'), { ... });

RulesTestEnvironment.cleanup()

जांच कोड के आखिर में, क्लीनअप फ़ंक्शन को कॉल करें. टेस्ट एनवायरमेंट में बनाए गए सभी Rulesटेस्टContexts को बंद करें और मौजूदा संसाधनों को खाली करें, ताकि आप एक सही एग्ज़िट कर सकें.

इस तरीके से, एम्युलेटर की स्थिति में किसी भी तरह का बदलाव नहीं होता. अलग-अलग टेस्ट के बीच डेटा रीसेट करने के लिए, clearDatabase(), clearFirestore(), और clearStorage() देखें.

हस्ताक्षर:

cleanup(): Promise<void>;

लौटाए जाने वाले प्रॉडक्ट:

Promise<void>

RulesTestEnvironment.clearDatabase()

रीयल टाइम डेटाबेस एम्युलेटर नेमस्पेस में पूरा डेटा मिटाएं.

हस्ताक्षर:

clearDatabase(): Promise<void>;

लौटाए जाने वाले प्रॉडक्ट:

Promise<void>

RulesTestEnvironment.clearFirestore()

Firestore एम्युलेटर में, projectId के लिए डिफ़ॉल्ट Firestore डेटाबेस में डेटा मिटाएं.

हस्ताक्षर:

clearFirestore(): Promise<void>;

लौटाए जाने वाले प्रॉडक्ट:

Promise<void>

RulesTestEnvironment.clearStorage()

स्टोरेज एम्युलेटर में, ऐक्टिव बकेट में स्टोरेज फ़ाइलें और मेटाडेटा मिटाएं.

हस्ताक्षर:

clearStorage(): Promise<void>;

लौटाए जाने वाले प्रॉडक्ट:

Promise<void>

RulesTestEnvironment.unauthenticatedContext()

ऐसा RulesTestContext बनाएं जो Firebase से पुष्टि की मदद से लॉग इन न किए गए क्लाइंट की तरह काम करे.

दिए गए संदर्भ की मदद से किए गए अनुरोधों में, Firebase से पुष्टि के टोकन अटैच नहीं होंगे.

हस्ताक्षर:

unauthenticatedContext(): RulesTestContext;

लौटाए जाने वाले प्रॉडक्ट:

RulesTestContext

उदाहरण

const unauthed = testEnv.unauthenticatedContext();
await assertFails(getDoc(unauthed.firestore(), '/private/doc'), { ... });

RulesTestEnvironment.withSecurityRulesDisabled()

हस्ताक्षर:

withSecurityRulesDisabled(callback: (context: RulesTestContext) => Promise<void>): Promise<void>;

पैरामीटर

पैरामीटर टाइप ब्यौरा
कॉलबैक (context: RulesTestContext) => वादा<void>

लौटाए जाने वाले प्रॉडक्ट:

Promise<void>