अपने एक्सटेंशन के लिए उपयोगकर्ता दस्तावेज़ बनाएं

प्रत्येक एक्सटेंशन में दस्तावेज़ होना चाहिए जो उपयोगकर्ताओं को सिखाता है कि एक्सटेंशन क्या करता है और इसका उपयोग कैसे करना है।

न्यूनतम, आवश्यक दस्तावेज़ीकरण तीन मार्कडाउन फ़ाइलों का यह सेट है:

  • PREINSTALL.md
  • POSTINSTALL.md
  • CHANGELOG.md

इसके अलावा, आपको निम्नलिखित के उत्पादन पर भी विचार करना चाहिए:

  • एक्सटेंशन के सार्वजनिक भंडार के लिए एक README फ़ाइल।
  • आपकी अपनी वेबसाइट पर लंबे प्रारूप वाले ट्यूटोरियल, गाइड और संदर्भ प्रकाशित किए गए हैं और आपके PREINSTALL.md में लिंक किए गए हैं।

कुछ सर्वोत्तम प्रथाओं और सामान्य वाक्यांश और संरचना को सीखने के लिए, हम आधिकारिक फायरबेस एक्सटेंशन के साथ उपलब्ध फ़ाइलों की समीक्षा करने की सलाह देते हैं।

एक README बनाना

आपकी एक्सटेंशन निर्देशिका में वैकल्पिक रूप से एक README हो सकता है। ध्यान दें कि firebase ext:dev:init कमांड स्वचालित रूप से आपके लिए एक उत्पन्न नहीं करता है।

हालाँकि, फायरबेस सीएलआई, आपके extension.yaml फ़ाइल और आपकी PREINSTALL.md फ़ाइल से खींची गई सामग्री वाली README फ़ाइल को स्वतः उत्पन्न करने के लिए निम्नलिखित सुविधा कमांड का समर्थन करता है:

firebase ext:info ./path/to/extension --markdown > README.md

आधिकारिक फायरबेस एक्सटेंशन के लिए सभी README फ़ाइलें इस कमांड का उपयोग करके उत्पन्न की जाती हैं।

स्थापना जानकारी जोड़ें

रीडमी लिखने या जनरेट करने के बाद, इसमें इंस्टॉलेशन जानकारी जोड़ें। आप निम्नलिखित स्निपेट को टेम्पलेट के रूप में उपयोग कर सकते हैं:

---

## 🧩 Install this extension

### Console

[![Install this extension in your Firebase project](https://www.gstatic.com/mobilesdk/210513_mobilesdk/install-extension.png "Install this extension in your Firebase project")][install-link]

[install-link]: https://console.firebase.google.com/project/_/extensions/install?ref=publisher_id/extension_name

### Firebase CLI

```bash
firebase ext:install publisher_id/extension_name --project=[your-project-id]
```

> Learn more about installing extensions in the Firebase Extensions documentation:
> [console](https://firebase.google.com/docs/extensions/install-extensions?platform=console),
> [CLI](https://firebase.google.com/docs/extensions/install-extensions?platform=cli)

---

PREINSTALL फ़ाइल लिखना

PREINSTALL फ़ाइल आपके एक्सटेंशन का अवलोकन है, एक प्रकार का "मार्केटिंग" पृष्ठ।

इस फ़ाइल में क्या सामग्री है?

  • आपके एक्सटेंशन की कार्यक्षमता का व्यापक विवरण
  • पूर्वापेक्षाओं की सूची, जैसे डेटाबेस सेटअप या गैर-Google सेवा तक पहुंच ( उदाहरण )
  • किसी भी प्री-इंस्टॉलेशन कार्य और उनके निर्देशों का संक्षिप्त विवरण
  • किसी भी पोस्ट-इंस्टॉलेशन कार्य का संक्षिप्त विवरण ( उदाहरण ) (विस्तृत निर्देश POSTINSTALL में जाते हैं)
  • किसी भी बिलिंग निहितार्थ का संक्षिप्त विवरण ( बॉयलरप्लेट टेक्स्ट से प्रारंभ करें)

यह सामग्री उपयोगकर्ता को कहां प्रदर्शित होती है?

फायरबेस कंसोल में प्री-इंस्टॉल सामग्री की छवि
फायरबेस कंसोल में सामग्री को पूर्व-स्थापित करें

फायरबेस कंसोल में प्री-इंस्टॉल सामग्री की बड़ी छवि

  • एक्सटेंशन.dev पर एक्सटेंशन के पेज पर।
  • आपके एक्सटेंशन के लिए आपका स्रोत कोड रेपो (एक्सटेंशन निर्देशिका के अंदर)
  • एक्सटेंशन के README के ​​भाग के रूप में (यदि आप Firebase CLI का उपयोग करते हैं --markdown > README.md ध्वज )

PREINSTALL फ़ाइलें एक्सटेंशन के लिए पैरामीटर मानों तक नहीं पहुंच सकती हैं, इसलिए आपको पैरामीटर संदर्भों को वास्तविक मानों के साथ प्रस्तुत करने की अपेक्षा नहीं करनी चाहिए।

कुछ सर्वोत्तम प्रथाएँ क्या हैं?

  • यदि संभव हो तो PREINSTALL फ़ाइल की पूरी सामग्री को एक पृष्ठ के नीचे रखें
  • विवरण का वह स्तर प्रदान करें जो किसी अंतिम उपयोगकर्ता को एक्सटेंशन इंस्टॉल करने से पहले जानना आवश्यक है
  • POSTINSTALL फ़ाइल या अन्य पूरक फ़ाइलों में विस्तृत निर्देश डालें
  • यदि आप एक्सटेंशन का समर्थन करने के लिए अन्य उपकरण या स्क्रिप्ट प्रदान करते हैं तो संक्षेप में उल्लेख करें

POSTINSTALL फ़ाइल लिखना

POSTINSTALL फ़ाइल आपके एक्सटेंशन का विस्तृत पोस्ट-इंस्टॉलेशन अनुदेशात्मक पृष्ठ है।

इस फ़ाइल में क्या सामग्री है?

  • किसी भी आवश्यक पोस्ट-इंस्टॉलेशन कार्य के लिए विस्तृत निर्देश, जैसे फायरबेस सुरक्षा नियम स्थापित करना या क्लाइंट-साइड कोड जोड़ना ( उदाहरण )
  • इंस्टॉल किए गए एक्सटेंशन को तुरंत आज़माने के सामान्य निर्देश (उदाहरण के लिए, "कंसोल पर जाएं, फिर ऐसा करें")
  • एक्सटेंशन को ट्रिगर करने के तरीके के बारे में बुनियादी जानकारी, विशेष रूप से HTTP अनुरोध-ट्रिगर एक्सटेंशन के लिए
  • स्थापित एक्सटेंशन की निगरानी कैसे करें इसके लिए संक्षिप्त निर्देश ( बॉयलरप्लेट टेक्स्ट से शुरू करें)

यह सामग्री उपयोगकर्ता को कहां प्रदर्शित होती है?

फायरबेस कंसोल में पोस्ट-इंस्टॉल सामग्री की छवि
फायरबेस कंसोल में सामग्री को पोस्ट-इंस्टॉल करें

फायरबेस कंसोल में पोस्ट-इंस्टॉल सामग्री की बड़ी छवि

  • उपयोगकर्ता द्वारा आपका एक्सटेंशन इंस्टॉल करने के बाद फ़ायरबेस कंसोल में (इंस्टॉल किए गए एक्सटेंशन के विवरण कार्ड में)

  • आपके एक्सटेंशन के लिए आपका स्रोत कोड रेपो (एक्सटेंशन निर्देशिका के अंदर)

POSTINSTALL फ़ाइलें एक्सटेंशन के लिए पैरामीटर मान और कई फ़ंक्शन-संबंधित चर तक पहुंच सकती हैं। जब POSTINSTALL सामग्री फायरबेस कंसोल में प्रदर्शित होती है, तो पैरामीटर या चर संदर्भों के बजाय वास्तविक मान प्रदर्शित होते हैं। अपनी POSTINSTALL फ़ाइल में पैरामीटर और वेरिएबल को संदर्भित करने के तरीके के बारे में नीचे और जानें।

कुछ सर्वोत्तम प्रथाएँ क्या हैं?

  • POSTINSTALL फ़ाइल की पूरी सामग्री संक्षिप्त, लेकिन वर्णनात्मक रखें।
  • अलग-अलग कार्यों या अवधारणाओं को अलग करने के लिए शीर्षकों का उपयोग करके सामग्री को विभाजित करें।
  • अपनी वेबसाइट ( उदाहरण ) पर या एक्सटेंशन रिपॉजिटरी ( उदाहरण ) के भीतर पूरक मार्कडाउन फ़ाइलों में किसी विशिष्ट वर्कफ़्लो या कार्य के लिए विस्तृत निर्देश प्रकाशित करने पर विचार करें।
  • संदर्भ पैरामीटर और फ़ंक्शन-संबंधित चर ताकि उपयोगकर्ता निर्देशों के संदर्भ में उनके कॉन्फ़िगर किए गए मान देख सकें

पैरामीटर्स और वेरिएबल्स को संदर्भित करना

इंस्टॉलेशन के बाद, फायरबेस कंसोल एक्सटेंशन की POSTINSTALL फ़ाइल की सामग्री प्रदर्शित करता है। यदि आप अपनी POSTINSTALL फ़ाइल में पैरामीटर और फ़ंक्शन-संबंधित चर (नीचे तालिका देखें) का संदर्भ देते हैं, तो कंसोल इन संदर्भों को स्थापित उदाहरण के लिए वास्तविक मानों से भर देता है।

निम्नलिखित सिंटैक्स का उपयोग करके POSTINSTALL फ़ाइल में कॉन्फ़िगर किए गए पैरामीटर मानों तक पहुंचें: ${param: PARAMETER_NAME }

आप केवल अपनी POSTINSTALL फ़ाइल में निम्नलिखित फ़ंक्शन-संबंधित चर का संदर्भ भी ले सकते हैं। फायरबेस इन वेरिएबल्स का समर्थन करता है ताकि आप इंस्टॉलेशन के बाद अपने उपयोगकर्ताओं को अधिक आसानी से मार्गदर्शन प्रदान कर सकें। वे केवल POSTINSTALL फ़ाइल में उपयोग के लिए उपलब्ध हैं क्योंकि इन वेरिएबल्स के मान इंस्टॉलेशन के बाद तक उपलब्ध नहीं हैं।

इस तालिका में, function-name extension.yaml के भीतर फ़ंक्शन के संसाधन ऑब्जेक्ट में name फ़ील्ड का मान है।

फ़ंक्शन-संबंधित चर के लिए संदर्भ विवरण परिवर्तनीय मान (एक्सटेंशन इंस्टॉलेशन के बाद फायरबेस द्वारा स्वचालित रूप से पॉप्युलेट किया गया)
${function: function-name .location}
वह स्थान जहां फ़ंक्शन तैनात किया गया है उदाहरण मान:
us-central1
${function: function-name .name}
अंतिम परिनियोजित फ़ंक्शन का नाम, जिसमें एक्सटेंशन की इंस्टेंस आईडी शामिल है

सामान्यीकृत प्रारूप:
ext- extension-instance-id - function-name

उदाहरण मान:
ext-my-awesome-extension-6m31-yourFunctionName

${function: function-name .url} (केवल HTTP फ़ंक्शंस के लिए लागू)
अंतिम परिनियोजित फ़ंक्शन का URL, जिससे क्लाइंट कोड HTTP अनुरोध कर सकता है

सामान्यीकृत प्रारूप:
https:// deployment-location - project-id .cloudfunctions.net/ name-of-final-deployed-function

उदाहरण मान:
https://us-central1-project-123.cloudfunctions.net/ext-my-awesome-extension-6m31-yourFunctionName

किसी एक्सटेंशन को ट्रिगर करने के तरीके का दस्तावेज़ीकरण

आपके एक्सटेंशन के उपयोगकर्ता दस्तावेज़ में, आपको अपने उपयोगकर्ताओं को यह निर्देश देना होगा कि अपने एक्सटेंशन को कैसे ट्रिगर किया जाए। ये निर्देश उतने विस्तृत हो सकते हैं जितना आप आवश्यक समझते हैं, लेकिन POSTINSTALL फ़ाइल लिखने के लिए सर्वोत्तम प्रथाओं को ध्यान में रखें। इन निर्देशों को कैसे प्रदान करें, इस पर मार्गदर्शन के लिए, नीचे दिए गए अनुभाग का विस्तार करें जो आपके एक्सटेंशन पर लागू होता है।

चेंजलॉग फ़ाइल लिखना

इस फ़ाइल में क्या सामग्री है?

प्रत्येक एक्सटेंशन में एक CHANGELOG.md फ़ाइल होनी चाहिए जो आपके द्वारा प्रकाशित एक्सटेंशन के प्रत्येक नए संस्करण में शामिल परिवर्तनों का दस्तावेज़ीकरण करती हो। प्रत्येक संस्करण को लेवल 2 हेडर ( ## ) के अंतर्गत रखें; अन्यथा, आप जो भी मार्कडाउन फ़ॉर्मेटिंग आपको पसंद हो उसका उपयोग कर सकते हैं।

निम्नलिखित उदाहरण आधिकारिक एक्सटेंशन में से एक का अंश है:

## Version 0.1.3

feature - Support deletion of directories (issue #148).

## Version 0.1.2

feature - Add a new param for recursively deleting subcollections in Cloud
Firestore (issue #14).

fixed - Fixed "cold start" errors experienced when the extension runs after a
period of inactivity (issue #48).

## Version 0.1.1

Initial release of the _Delete User Data_ extension.

यह सामग्री उपयोगकर्ता को कहां प्रदर्शित होती है?

  • फायरबेस कंसोल और सीएलआई में, जब उपयोगकर्ता आपके एक्सटेंशन के नए संस्करणों में अपग्रेड करते हैं। फायरबेस कंसोल और सीएलआई केवल वे परिवर्तन प्रदर्शित करते हैं जो उपयोगकर्ता द्वारा अपग्रेड पूरा करने पर प्रभावी होंगे।
  • आपके एक्सटेंशन का स्रोत कोड रेपो (एक्सटेंशन निर्देशिका के अंदर)।