Utwórz dokumentację użytkownika dotyczącą rozszerzenia

Każde rozszerzenie musi mieć dokumentację, która informuje użytkowników, do czego służy rozszerzenie i jak z niego korzystać.

Minimalna wymagana dokumentacja to zestaw 3 plików Markdown:

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

Warto też rozważyć:

  • Plik README dla publicznego repozytorium rozszerzenia.
  • dłuższe samouczki, przewodniki i materiały referencyjne opublikowane w Twojej witrynie i połączone z nią za pomocą linku w sekcji PREINSTALL.md.

Aby poznać sprawdzone metody oraz typowe sformułowania i struktury, zalecamy zapoznanie się z plikami dostępnymi w oficjalnych rozszerzeniach Firebase.

Tworzenie pliku README

Katalog rozszerzenia może opcjonalnie zawierać plik README. Pamiętaj, że komenda firebase ext:dev:init nie generuje automatycznie pliku.

Interfejs wiersza poleceń Firebase obsługuje jednak to wygodne polecenie, które automatycznie generuje plik README zawierający treści z pliku extension.yaml i pliku PREINSTALL.md:

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

Wszystkie pliki README dla oficjalnych rozszerzeń Firebase są generowane za pomocą tego polecenia.

Dodawanie informacji o instalacji

Po napisaniu lub wygenerowaniu pliku README dodaj do niego informacje o instalacji. Jako szablon możesz użyć tego fragmentu kodu:

---

## 🧩 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)

---

Zapisywanie pliku PREINSTALL

Plik PREINSTALL to przegląd rozszerzenia, czyli rodzaj strony „marketingowej”.

Jakie treści zawiera ten plik?

  • Szczegółowy opis funkcji rozszerzenia
  • Lista wymagań wstępnych, takich jak konfiguracja bazy danych lub dostęp do usługi innej niż Google (przykład).
  • Krótki opis zadań wstępnych i ich instrukcje
  • Krótki opis zadań wykonywanych po instalacji (przykład). Szczegółowe instrukcje znajdziesz w pliku POSTINSTALL.
  • Krótki opis wszelkich konsekwencji rozliczeniowych (zacznij od tekstu standardowego).

Gdzie te treści są wyświetlane użytkownikowi?

Obraz treści wstępnie zainstalowanych w <span class=Konsola Firebase">
Wstępnie zainstaluj treści w konsoli Firebase

Duże zdjęcie treści wstępnie zainstalowanych w <span class=Konsola Firebase">

  • Na stronie rozszerzenia na stronie extensions.dev.
  • repozytorium kodu źródłowego rozszerzenia (w katalogu rozszerzenia);
  • W ramach pliku README rozszerzenia (jeśli używasz wiersza poleceń Firebase --markdown > README.md flaga)

Pliki PREINSTALL nie mają dostępu do wartości parametrów rozszerzenia, więc nie należy się spodziewać, że odwołania do parametrów będą renderowane z rzeczywistymi wartościami.

Jakie są sprawdzone metody?

  • Jeśli to możliwe, ogranicz zawartość pliku PREINSTALL do mniej niż jednej strony.
  • Podaj poziom szczegółowości, który użytkownik końcowy musi znać przed zainstalowaniem rozszerzenia.
  • Dodaj szczegółowe instrukcje w pliku POSTINSTALL lub innych plikach dodatkowych.
  • Krótko wspomnij, czy udostępniasz inne narzędzia lub skrypty do obsługi rozszerzenia.

Zalecamy użycie jak największej części tego tekstu w przypadku rozszerzenia. Podaliśmy kilka przykładów, ale najważniejsze jest to, aby uwzględnić wszystkie usługi płatne Google i niepochodzące od Google.

Aby znaleźć prawidłowe informacje o cenie produktu, możesz skorzystać z tych materiałów:

W przypadku wszystkich rozszerzeń dodaj ten fragment, aby pomóc użytkownikom zrozumieć konsekwencje rozliczeniowe:

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>.

Zapisywanie pliku POSTINSTALL

Plik POSTINSTALL to szczegółowa strona instruktażowa rozszerzenia po zainstalowaniu.

Jakie treści zawiera ten plik?

  • Szczegółowe instrukcje dotyczące wszystkich wymaganych zadań po instalacji, takich jak konfigurowanie reguł zabezpieczeń Firebase czy dodawanie kodu po stronie klienta (przykład).
  • Ogólne instrukcje dotyczące natychmiastowego wypróbowania zainstalowanego rozszerzenia (np. „Otwórz konsolę, a potem wykonaj tę czynność”)
  • podstawowe informacje o tym, jak aktywować rozszerzenie, zwłaszcza w przypadku rozszerzeń aktywowanych żądaniem HTTP;
  • Krótkie wskazówki dotyczące monitorowania zainstalowanego rozszerzenia (zacznij od tekstu standardowego)

Gdzie te treści są wyświetlane użytkownikowi?

Obraz treści po instalacji w <span class=Konsola Firebase">
Zawartość po instalacji w konsoli Firebase

Duże zdjęcie treści po zainstalowaniu aplikacji w <span class=Konsola Firebase">

  • W konsoli Firebase po zainstalowaniu przez użytkownika rozszerzenia (na karcie szczegółów zainstalowanego rozszerzenia)

  • repozytorium kodu źródłowego rozszerzenia (w katalogu rozszerzenia);

POSTINSTALL mogą mieć dostęp do wartości parametrów i kilku zmiennych funkcji rozszerzenia. Gdy treść POSTINSTALL jest wyświetlana w konsoli Firebase, zamiast odwołań do parametrów lub zmiennych wyświetlane są rzeczywiste wartości. Poniżej znajdziesz więcej informacji o tym, jak odwoływać się do parametrów i zmiennych w pliku POSTINSTALL.

Jakie są sprawdzone metody?

  • Pamiętaj, aby treść pliku POSTINSTALL była zwięzła, ale jednocześnie wyczerpująca.
  • Podziel treści na sekcje za pomocą nagłówków, aby oddzielić od siebie poszczególne zadania lub pojęcia.
  • Zastanów się nad opublikowaniem szczegółowych instrukcji dotyczących konkretnego procesu lub zadania na swojej stronie internetowej (przykład) lub w dodatkowych plikach Markdown w repozytorium rozszerzeń (przykład).
  • odwoływać się do parametrów i zmiennych powiązanych z funkcją, aby użytkownik widział skonfigurowane wartości w kontekście instrukcji;

Odwoływanie się do parametrów i zmiennych

Po zainstalowaniu konsola Firebase wyświetla zawartość pliku POSTINSTALL rozszerzenia. Jeśli w pliku POSTINSTALL odwołujesz się do parametrów i zmiennych związanych z funkcjami (patrz tabela poniżej), konsola wypełnia te odwołania rzeczywistymi wartościami zainstalowanego wystąpienia.

Aby uzyskać dostęp do skonfigurowanych wartości parametru w pliku POSTINSTALL, użyj tej składni: ${param:PARAMETER_NAME}

Możesz też odwoływać się do tych zmiennych związanych z funkcją tylko w pliku POSTINSTALL. Firebase obsługuje te zmienne, aby ułatwić użytkownikom korzystanie z aplikacji po jej zainstalowaniu. Można ich używać tylko w pliku POSTINSTALL, ponieważ wartości tych zmiennych są dostępne dopiero po instalacji.

W tej tabeli function-name to wartość pola name w obiekcie zasobu funkcji w elementach extension.yaml.

Informacje o zmiennej związanej z funkcją Opis Wartość zmiennej (wypełniana automatycznie przez Firebase po zainstalowaniu rozszerzenia)
${function:function-name.location}
Lokalizacja wdrożenia funkcji. Przykładowa wartość:
us-central1
${function:function-name.name}
Nazwa ostatecznej wdrożonej funkcji, która zawiera identyfikator instancji rozszerzenia

Format ogólny:
ext-extension-instance-id-function-name

Przykładowa wartość:
ext-my-awesome-extension-6m31-yourFunctionName

${function:function-name.url} (dotyczy tylko funkcji HTTP)
Adres URL funkcji rozmieszczonej, do której kod klienta może wysyłać żądania HTTP

Format ogólny:
https://deployment-location-project-id.cloudfunctions.net/name-of-final-deployed-function

Przykładowa wartość:
https://us-central1-project-123.cloudfunctions.net/ext-my-awesome-extension-6m31-yourFunctionName

Zalecamy użycie jak największej części tego tekstu w przypadku rozszerzenia.

W przypadku wszystkich rozszerzeń dodaj tę sekcję, aby pomóc użytkownikom monitorować zainstalowane rozszerzenie:

Monitoring

As a best practice, you can
[monitor the activity](https://firebase.google.com/docs/extensions/manage-installed-extensions_community#monitor)
of your installed extension, including checks on its health, usage, and logs.

Dokumentowanie sposobu aktywowania rozszerzenia

W dokumentacji dla użytkowników rozszerzenia musisz poinformować ich o tym, jak je aktywować. Te instrukcje mogą być tak szczegółowe, jak uznasz to za konieczne, ale pamiętaj o sprawdzonym sposobie tworzenia pliku POSTINSTALL. Aby dowiedzieć się, jak to zrobić, rozwiń sekcję poniżej, która dotyczy Twojego rozszerzenia.

Użytkownicy mogą wywoływać w tle rozszerzenie uruchamiane przez zdarzenia na różne sposoby w zależności od używanych usług.

Wprowadzanie zmian bezpośrednio w konsoli

Możesz poprosić użytkowników o wprowadzenie zmian bezpośrednio w konsoli Firebase, zwłaszcza na potrzeby wstępnego testowania rozszerzenia. Załóżmy, że Twoja rozszerzenie tworzy nowy dokument Cloud Firestore za każdym razem, gdy zostanie utworzony nowy użytkownik Firebase Authentication. Możesz poprosić użytkowników o przetestowanie zainstalowanego wystąpienia rozszerzenia, ręcznie dodając nowego użytkownika Authentication w konsoli. Następnie mogą obserwować nowy dokument w sekcji Cloud Firestore konsoli.

Dodawanie kodu po stronie klienta

W stosownych przypadkach możesz też poinformować użytkowników, jak dodać kod po stronie klienta, aby wywołać rozszerzenie. Należy skierować użytkowników do oficjalnej dokumentacji interfejsów API, których będą potrzebować. Możesz też dołączyć przykładowe aplikacje lub skompilowane przykładowe klienta, aby ułatwić użytkownikom zintegrowanie rozszerzenia z aplikacją (np. rozszerzenie Distributed Counter).

Aby użytkownicy mogli aktywować funkcję aktywowaną przez żądanie HTTP (a tym samym rozszerzenie), musisz podać im nazwę wdrożonej funkcji lub jej adres URL.

Nazwa ostatecznie wdrożonej funkcji nie jest taka sama jak name podana w obiekcie zasobu funkcji w extension.yaml. Aby uwzględnić wiele instalacji tego samego rozszerzenia w projekcie, Firebase zmienia nazwę funkcji w tym formacie: ext-extension-instance-id-function-name.

Podane niżej punkty to sugerowany tekst, który należy umieścić w pliku POSTINSTALL rozszerzenia. Po zainstalowaniu konsola Firebase wyświetla zawartość pliku POSTINSTALL i wypełnia te odwołania rzeczywistymi wartościami skonfigurowanymi dla zainstalowanej instancji. Jeśli na przykład zdefiniujesz funkcję o nazwie yourFunction, możesz uwzględnić te elementy (w odpowiednich przypadkach):

  • W przypadku funkcji HTTP onRequest

    To trigger this extension, make a request to or visit the following URL:
    **`${function:yourFunction.url}`**.
    
  • W przypadku funkcji wywoływalnych przez HTTP (onCall)

    This extension is implemented as an HTTP callable function. To call it from your client app,
    follow the instructions in the
    [callable functions documentation](https://firebase.google.com/docs/functions/callable#call_the_function).
    The name of the function to call is **`${function:yourFunction.name}`**,
    and its region is **`${function:yourFunction.location}`**.
    

Tworzenie pliku CHANGELOG

Jakie treści zawiera ten plik?

Każde rozszerzenie musi mieć plik CHANGELOG.md, który dokumentuje zmiany wprowadzone w każdej nowej wersji rozszerzenia. Umieść każdą wersję w nagłówku poziomu 2 (##). W przeciwnym razie możesz użyć dowolnego formatowania Markdown.

Poniżej znajduje się fragment jednego z oficjalnych rozszerzeń:

## 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.

Gdzie te treści są wyświetlane użytkownikowi?

  • W konsoli Firebase i w interfejsie wiersza poleceń, gdy użytkownicy uaktualnią rozszerzenie do nowej wersji. Konsola Firebase i interfejs wiersza poleceń wyświetlają tylko zmiany, które wejdą w życie, jeśli użytkownik przeprowadzi uaktualnienie.
  • repozytorium kodu źródłowego rozszerzenia (w katalogu rozszerzenia).