Every extension must have documentation that teaches users what the extension does and how to use it.
The minimum, required, documentation is this set of three markdown files:
-  PREINSTALL.md
-  POSTINSTALL.md
-  CHANGELOG.md
In addition, you should also consider producing:
- A READMEfile for the extension's public repository.
- Longer-form tutorials, guides, and reference published on your own website and
linked in your PREINSTALL.md.
To learn some best practices and common phrasing and structure, we recommend reviewing the files available with the official Firebase extensions .
Creating a README
Your extension directory can optionally contain a README. Note that the firebase ext:dev:init 
command doesn't automatically generate one for you.
The Firebase 
CLI, though, does support the following convenience command to
auto-generate a README 
file containing content pulled from your extension.yaml 
file and your PREINSTALL.md 
file:
firebase ext:info . /path/to/extension --markdown > README.md
All the README files for the official Firebase extensions are generated using this command.
Add installation information
After you write or generate a README, add installation information to it. You can use the following snippet as a template:
--- ## 🧩 Install this extension ### Console [][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) ---
Writing a PREINSTALL 
file
 
 The PREINSTALL 
file is your extension's overview, a type of "marketing" page.
What content is in this file?
- Comprehensive description of your extension's functionality
- List of prerequisites, such as database setup or access to a non-Google service ( example )
- Brief description of any pre-installation tasks and their instructions
- Brief description of any post-installation tasks
( example 
)
(detailed instructions go in POSTINSTALL)
- Brief description of any billing implications (start with boilerplate text )
Where does this content display to the user?
 Firebase console">
Firebase console"> 
   Firebase console">
Firebase console">
- On the extension's page on extensions.dev .
- Your source code repo for your extension (inside the extension directory)
- As part of the extension's README (if you use the Firebase 
CLI  --markdown > README.md
 PREINSTALL 
files cannot access the parameter values for the extension, so you
should not expect parameter references to render with actual values.
What are some best practices?
- Keep the full content of the PREINSTALLfile to under one page , if possible
- Provide the level of detail that an end user absolutely needs to know before installing the extension
- Put detailed instructions in the POSTINSTALLfile or other supplementary files
- Briefly mention if you provide other tools or scripts to support the extension
Helpful PREINSTALL 
boilerplate text
 
 We recommend using as much of the following boilerplate text as possible, as applicable for your extension. We have provided some examples, but the most important point is to ensure all Google and non-Google billed services are listed.
You can use the following resources to find the correct product pricing details:
For all extensions, include this section to help your users understand billing implications:
 Billing
This extension uses other Firebase or Google Cloud 
services which may have
  associated charges:
*   <list Google services / products that your extension uses>
*   <list Firebase services that your extension uses>
*   Cloud Secret Manager <if the extension uses secret params>
*   Cloud Functions
When you use Firebase Extensions, you're only charged for the underlying
resources that you use. A paid-tier billing plan is only required if the
extension uses a service that requires a paid-tier plan, for example calling to
a Google Cloud 
API or making outbound network requests to non-Google services.
All Firebase services offer a no-cost tier of usage.
[Learn more about Firebase billing.](https://firebase.google.com/pricing)
<Applicable info about billing implications for non-Google services, such as:>
Usage of this extension also requires you to have a <non-Google-service> account.
You are responsible for any associated costs with your usage of <non-Google-service>. 
 



