- HTTP अनुरोध
- पथ पैरामीटर
- निकाय से अनुरोध करें
- प्रतिक्रिया निकाय
- प्राधिकरण के दायरे
- परीक्षण सूट
- परीक्षण मामला
- अपेक्षा
- फंक्शनमॉक
- आर्ग
- परिणाम
- पथ एन्कोडिंग
- अभिव्यक्तिरिपोर्टस्तर
- मुद्दा
- स्रोत स्थिति
- तीव्रता
- परीक्षा परिणाम
- राज्य
- फ़ंक्शन कॉल
- विज़िटएक्सप्रेशन
- अभिव्यक्तिरिपोर्ट
- वैल्यूकाउंट
- इसे अजमाएं!
वाक्यविन्यास और अर्थ संबंधी शुद्धता के लिए परीक्षण Source
। यदि कोई समस्या है, तो उसे कॉल करने वाले को विवरण, गंभीरता और स्रोत स्थान के साथ लौटा दिया जाएगा।
परीक्षण विधि को Source
के साथ निष्पादित किया जा सकता है। नए नियमों की इकाई परीक्षण के लिए पासिंग Source
उपयोगी है।
ध्यान दें कि REST API का उपयोग करके चलाए जाने वाले परीक्षण उत्पादन डेटाबेस, स्टोरेज बकेट और संबंधित rsesources का उपयोग करते हैं। ऐसे परीक्षण पर उपयोग शुल्क लग सकता है। हम दृढ़ता से अनुशंसा करते हैं कि आप नियम परीक्षण करने के लिए फायरबेस लोकल एमुलेटर सूट का उपयोग करें, क्योंकि आप उपयोग शुल्क के बिना ऑफ़लाइन, गैर-उत्पादन संसाधनों पर परीक्षण चला सकते हैं।
निम्नलिखित Source
का एक उदाहरण है जो उपयोगकर्ताओं को उनकी उपयोगकर्ता आईडी और सही मेटाडेटा से मेल खाने वाली बाल्टी में छवियां अपलोड करने की अनुमति देता है:
उदाहरण
// Users are allowed to subscribe and unsubscribe to the blog.
service firebase.storage {
match /users/{userId}/images/{imageName} {
allow write: if userId == request.auth.uid
&& (imageName.matches('*.png$')
|| imageName.matches('*.jpg$'))
&& resource.mimeType.matches('^image/')
}
}
HTTP अनुरोध
POST https://firebaserules.googleapis.com/v1/{name=projects/**}:test
यूआरएल जीआरपीसी ट्रांसकोडिंग सिंटैक्स का उपयोग करता है।
पथ पैरामीटर
पैरामीटर | |
---|---|
name | आवश्यक। |
निकाय से अनुरोध करें
अनुरोध निकाय में निम्नलिखित संरचना वाला डेटा शामिल है:
JSON प्रतिनिधित्व | |
---|---|
{ "source": { object ( |
खेत | |
---|---|
source | शुद्धता के लिए |
testSuite | जब |
प्रतिक्रिया निकाय
सफल होने पर, प्रतिक्रिया निकाय में निम्नलिखित संरचना वाला डेटा शामिल होता है:
FirebaseRulesService.TestRuleset
के लिए प्रतिक्रिया।
JSON प्रतिनिधित्व | |
---|---|
{ "issues": [ { object ( |
खेत | |
---|---|
issues[] | अलग-अलग गंभीरता के वाक्यात्मक और अर्थ संबंधी |
testResults[] | |
प्राधिकरण के दायरे
निम्नलिखित OAuth स्कोप में से एक की आवश्यकता है:
-
https://www.googleapis.com/auth/cloud-platform
-
https://www.googleapis.com/auth/firebase
-
https://www.googleapis.com/auth/firebase.readonly
अधिक जानकारी के लिए, प्रमाणीकरण अवलोकन देखें।
परीक्षण सूट
TestSuite
TestCase
उदाहरणों का एक संग्रह है जो नियमों की तार्किक शुद्धता को मान्य करता है। TestSuite
एक projects.test
आमंत्रण के भीतर या रिलीज़-पूर्व जांच के रूप में Release
ऑब्जेक्ट के भाग के रूप में इन-लाइन संदर्भित किया जा सकता है।
JSON प्रतिनिधित्व | |
---|---|
{
"testCases": [
{
object ( |
खेत | |
---|---|
testCases[] | |
परीक्षण मामला
TestCase
संदेश अनुरोध संदर्भ और एक अपेक्षा प्रदान करते हैं कि दिए गए संदर्भ को अनुमति दी जाएगी या अस्वीकार किया जाएगा। परीक्षण के मामले सेवा-प्रदत्त फ़ंक्शन के लिए फ़ंक्शन कॉल को मॉक करने के लिए request
, resosurce
और functionMocks
निर्दिष्ट कर सकते हैं।
request
वस्तु अनुरोध-समय पर मौजूद संदर्भ का प्रतिनिधित्व करती है।
resource
लक्ष्य संसाधन का मूल्य है (उदाहरण के लिए, जीसीएस ऑब्जेक्ट या फायरस्टोर दस्तावेज़ का मेटाडेटा) क्योंकि यह अनुरोध निष्पादित होने से पहले लगातार भंडारण में दिखाई देता है।
क्लाउड फायरस्टोर ( अनुरोध , संसाधन ) और फायरबेस ( अनुरोध , संसाधन ) के लिए क्लाउड स्टोरेज के लिए संबंधित संदर्भ दस्तावेज भी देखें।
JSON प्रतिनिधित्व | |
---|---|
{ "expectation": enum ( |
खेत | |||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
expectation | परीक्षण की अपेक्षा. | ||||||||||||||||
request | संदर्भ का अनुरोध करें. अनुरोध संदर्भ का सटीक प्रारूप सेवा-निर्भर है। अनुरोध पर समर्थित फ़ील्ड और प्रकारों के बारे में जानकारी के लिए उपयुक्त सेवा दस्तावेज़ देखें। न्यूनतम रूप से, सभी सेवाएँ निम्नलिखित क्षेत्रों और प्रकारों का समर्थन करती हैं:
यदि अनुरोध मान सेवा के लिए अच्छी तरह से तैयार नहीं किया गया है, तो अनुरोध को अमान्य तर्क के रूप में अस्वीकार कर दिया जाएगा। | ||||||||||||||||
resource | वैकल्पिक संसाधन मान, जैसा कि अनुरोध पूरा होने से पहले लगातार भंडारण में दिखाई देता है। संसाधन प्रकार | ||||||||||||||||
functionMocks[] | सेवा-परिभाषित कार्यों के लिए वैकल्पिक नियम फ़ंक्शन मॉक। यदि सेट नहीं किया गया है, तो किसी भी सेवा-परिभाषित नियम फ़ंक्शन से त्रुटि लौटने की उम्मीद है, जो परीक्षण के परिणाम को प्रभावित कर भी सकती है और नहीं भी। | ||||||||||||||||
pathEncoding | निर्दिष्ट करता है कि क्या पथ (जैसे request.path) एन्कोड किए गए हैं और कैसे। | ||||||||||||||||
expressionReportLevel | निर्दिष्ट करता है कि प्रतिक्रिया में क्या शामिल किया जाना चाहिए। |
अपेक्षा
समर्थित परीक्षण केस अपेक्षाओं का सेट।
एनम्स | |
---|---|
EXPECTATION_UNSPECIFIED | अनिर्दिष्ट अपेक्षा. |
ALLOW | अनुमत परिणाम की अपेक्षा करें. |
DENY | अस्वीकृत परिणाम की अपेक्षा करें. |
फंक्शनमॉक
नकली नियम फ़ंक्शन परिभाषा।
मोक्स को लक्ष्य सेवा द्वारा घोषित फ़ंक्शन को संदर्भित करना चाहिए। परीक्षण के समय फ़ंक्शन आर्ग्स के प्रकार और परिणाम का अनुमान लगाया जाएगा। यदि तर्क या परिणाम मान फ़ंक्शन प्रकार की घोषणा के साथ संगत नहीं हैं, तो अनुरोध को अमान्य माना जाएगा।
किसी दिए गए फ़ंक्शन नाम के लिए एक से अधिक FunctionMock
प्रदान किए जा सकते हैं, जब तक कि Arg
मैचर्स अलग-अलग हों। किसी दिए गए ओवरलोड के लिए केवल एक फ़ंक्शन हो सकता है जहां सभी Arg
मान Arg.any_value
हैं।
सुरक्षा नियम भाषा में फ़ंक्शंस भी देखें।
JSON प्रतिनिधित्व | |
---|---|
{ "function": string, "args": [ { object ( |
खेत | |
---|---|
function | फ़ंक्शन का नाम. फ़ंक्शन का नाम सेवा घोषणा द्वारा प्रदान किए गए नाम से मेल खाना चाहिए। |
args[] | मिलान करने के लिए |
result | फ़ंक्शन कॉल का नकली परिणाम। |
आर्ग
मॉक फ़ंक्शन के लिए आर्ग मिलानकर्ता।
JSON प्रतिनिधित्व | |
---|---|
{ // Union field |
खेत | ||
---|---|---|
संघ क्षेत्र type . समर्थित तर्क मान. type निम्नलिखित में से केवल एक ही हो सकता है: | ||
exactValue | तर्क बिल्कुल दिए गए मान से मेल खाता है। | |
anyValue | तर्क दिए गए किसी भी मान से मेल खाता है। |
परिणाम
फ़ंक्शन मॉक इनवोकेशन से संभावित परिणाम मान।
JSON प्रतिनिधित्व | |
---|---|
{ // Union field |
खेत | ||
---|---|---|
संघ क्षेत्र type . समर्थित परिणाम मान. type निम्नलिखित में से केवल एक ही हो सकता है: | ||
value | परिणाम एक वास्तविक मूल्य है. मान का प्रकार सेवा द्वारा घोषित प्रकार से मेल खाना चाहिए। | |
undefined | परिणाम अपरिभाषित है, जिसका अर्थ है कि परिणाम की गणना नहीं की जा सकती। |
पथ एन्कोडिंग
प्रयुक्त पथ एन्कोडिंग का प्रकार.
एनम्स | |
---|---|
ENCODING_UNSPECIFIED | कोई एन्कोडिंग निर्दिष्ट नहीं की गई है. डिफ़ॉल्ट रूप से "URL_ENCODED" व्यवहार। |
URL_ENCODED | पथ खंडों को यूआरएल एन्कोडेड के रूप में मानता है लेकिन गैर-एन्कोडेड विभाजकों ("/") के साथ। यह पहले गलत व्यवहार है। |
PLAIN | कुल पथ को गैर-यूआरएल एन्कोडेड जैसे कच्चा मानता है। |
अभिव्यक्तिरिपोर्टस्तर
अभिव्यक्ति रिपोर्ट प्रतिक्रिया में शामिल किए जाने वाले डेटा की मात्रा.
एनम्स | |
---|---|
LEVEL_UNSPECIFIED | कोई स्तर निर्दिष्ट नहीं किया गया है. डिफ़ॉल्ट रूप से "कोई नहीं" व्यवहार। |
NONE | कोई अतिरिक्त जानकारी शामिल न करें. |
FULL | मूल्यांकन की गई अभिव्यक्तियों पर विस्तृत रिपोर्टिंग शामिल करें। |
VISITED | केवल वे अभिव्यक्तियाँ शामिल करें जो मूल्यांकन के दौरान देखी गई थीं। |
मुद्दा
मुद्दों में चेतावनियाँ, त्रुटियाँ और पदावनति नोटिस शामिल हैं।
JSON प्रतिनिधित्व | |
---|---|
{ "sourcePosition": { object ( |
खेत | |
---|---|
sourcePosition | |
description | संक्षिप्त त्रुटि विवरण. |
severity | मुद्दे की गंभीरता. |
स्रोत स्थिति
Source
सामग्री में उसकी पंक्ति, स्तंभ संख्या और Source
संदेश में File
की अनुक्रमणिका सहित स्थिति। डिबग उद्देश्यों के लिए उपयोग किया जाता है।
JSON प्रतिनिधित्व | |
---|---|
{ "fileName": string, "line": integer, "column": integer, "currentOffset": integer, "endOffset": integer } |
खेत | |
---|---|
fileName | |
line | स्रोत खंड की पंक्ति संख्या. 1-आधारित। |
column | स्रोत खंड से संबद्ध स्रोत रेखा पर पहला स्तंभ। |
currentOffset | फ़ाइल की शुरुआत के सापेक्ष आरंभ स्थिति. |
endOffset | फ़ाइल की शुरुआत के सापेक्ष अंतिम स्थिति। |
तीव्रता
मुद्दे की गंभीरता का सेट.
एनम्स | |
---|---|
SEVERITY_UNSPECIFIED | एक अनिर्दिष्ट गंभीरता. |
DEPRECATION | उन बयानों और तरीकों के लिए बहिष्करण मुद्दा जिनका अब समर्थन या रखरखाव नहीं किया जा सकता है। |
WARNING | चेतावनियाँ जैसे: अप्रयुक्त चर। |
ERROR | त्रुटियाँ जैसे: बेजोड़ घुंघराले ब्रेसिज़ या परिवर्तनीय पुनर्परिभाषा। |
परीक्षा परिणाम
परीक्षण परिणाम संदेश जिसमें परीक्षण की स्थिति के साथ-साथ परीक्षण विफलताओं का विवरण और स्रोत स्थिति भी शामिल है।
JSON प्रतिनिधित्व | |
---|---|
{ "state": enum ( |
खेत | |
---|---|
state | परीक्षण की स्थिति. |
debugMessages[] | मूल्यांकन के दौरान आने वाले परीक्षण निष्पादन समस्याओं से संबंधित डीबग संदेश। डिबग संदेश फ़ंक्शन मॉक के बहुत अधिक या बहुत कम आमंत्रण या मूल्यांकन के दौरान होने वाली रनटाइम त्रुटियों से संबंधित हो सकते हैं। उदाहरण के लिए: |
errorPosition | किसी अभिव्यक्ति के मूल्यांकन के परिणामस्वरूप त्रुटि हो सकती है। नियम डिफ़ॉल्ट रूप से अस्वीकृत होते हैं, इसलिए जब कोई त्रुटि उत्पन्न होती है तो उदाहरण के लिए |
functionCalls[] | सेवा-परिभाषित विधियों के लिए किए गए फ़ंक्शन कॉल का सेट। फ़ंक्शन कॉल को उस क्रम में शामिल किया जाता है जिसमें मूल्यांकन के दौरान उनका सामना किया जाता है, मॉक किए गए और अनमॉक किए गए दोनों फ़ंक्शंस के लिए प्रदान किया जाता है, और परीक्षण |
visitedExpressions[] | किसी दिए गए परीक्षण के लिए विज़िट की गई अनुमति अभिव्यक्तियों का सेट। यह उन सभी विज़िट की गई अनुमति अभिव्यक्तियों की स्थिति और मूल्यांकन परिणाम लौटाता है जो परीक्षण मामले के लिए प्रासंगिक थे, उदाहरण के लिए
मध्यवर्ती मूल्यांकन राज्यों की विस्तृत रिपोर्ट के लिए, |
expressionReports[] | नियम-सेट एएसटी में अभिव्यक्ति से लेकर उन मानों तक मैपिंग, जिनके आधार पर उनका मूल्यांकन किया गया था। एएसटी संरचना को प्रतिबिंबित करने के लिए आंशिक रूप से नेस्टेड। ध्यान दें कि उपरोक्त "visitedExpressions" फ़ील्ड के विपरीत यह फ़ील्ड वास्तव में अभिव्यक्तियों को ट्रैक कर रही है न कि अनुमति विवरण को। शाब्दिक अभिव्यक्तियाँ छोड़ दी गई हैं। |
राज्य
परीक्षा परिणाम के लिए मान्य स्थितियाँ.
एनम्स | |
---|---|
STATE_UNSPECIFIED | परीक्षण स्थिति निर्धारित नहीं है. |
SUCCESS | परीक्षण सफल है. |
FAILURE | परीक्षण असफल है. |
फ़ंक्शन कॉल
एक सेवा-परिभाषित फ़ंक्शन कॉल का प्रतिनिधित्व करता है जिसे परीक्षण निष्पादन के दौरान लागू किया गया था।
JSON प्रतिनिधित्व | |
---|---|
{ "function": string, "args": [ value ] } |
खेत | |
---|---|
function | बुलाए गए फ़ंक्शन का नाम. |
args[] | फ़ंक्शन को जो तर्क प्रदान किए गए थे. |
विज़िटएक्सप्रेशन
नियमों में देखी गई अभिव्यक्ति के लिए स्थिति और पहुंच परिणाम को संग्रहीत करें।
JSON प्रतिनिधित्व | |
---|---|
{
"sourcePosition": {
object ( |
खेत | |
---|---|
sourcePosition | |
value | विज़िट की गई अभिव्यक्ति के लिए मूल्यांकन किया गया मान, उदाहरण के लिए सत्य/गलत |
अभिव्यक्तिरिपोर्ट
वर्णन करता है कि किसी फ़ाइल में एक अभिव्यक्ति कहाँ पाई जाती है और इसके उपयोग के दौरान इसका क्या मूल्यांकन किया गया था।
JSON प्रतिनिधित्व | |
---|---|
{ "sourcePosition": { object ( |
खेत | |
---|---|
sourcePosition | मूल नियम स्रोत में अभिव्यक्ति की स्थिति. |
values[] | वे मान जिनका सामना होने पर इस अभिव्यक्ति का मूल्यांकन किया गया। |
children[] | उपअभिव्यक्तियाँ |
वैल्यूकाउंट
किसी विशेष ExpressionValue पर कितनी बार किसी Expression का मूल्यांकन किया गया, इसके लिए Tuple करें।
JSON प्रतिनिधित्व | |
---|---|
{ "value": value, "count": integer } |
खेत | |
---|---|
value | अभिव्यक्ति का वापसी मूल्य |
count | वह अभिव्यक्ति कितनी बार लौटी. |