Opublikuj rozszerzenie

Z tej strony dowiesz się, jak opublikować rozszerzenie w Centrum rozszerzeń.

Zanim zaczniesz

Aby opublikować rozszerzenie, musisz najpierw zarejestrować się jako wydawca rozszerzeń.

Weryfikowalne źródła

Wszystkie rozszerzenia opublikowane w Centrum rozszerzeń muszą mieć publicznie weryfikowalne źródło. Zamiast przesyłać kod źródłowy rozszerzenia bezpośrednio do Centrum rozszerzeń, możesz określić lokalizację źródła, a Centrum rozszerzeń pobierze go i zbuduje na jego podstawie rozszerzenie.

Obecnie oznacza to udostępnienie kodu źródłowego rozszerzenia w publicznym repozytorium GitHub.

Przesyłanie z wiarygodnego źródła ma kilka zalet:

  • Użytkownicy mogą sprawdzić kod źródłowy konkretnej wersji rozszerzenia, która zostanie zainstalowana.
  • Dzięki temu możesz mieć pewność, że przesyłasz tylko to, co chcesz, a nie na przykład projekty w toku lub niepotrzebne pliki pozostałe po procesie tworzenia.

Zalecany cykl programowania

Narzędzia do tworzenia rozszerzeń Firebase obsługują przesyłanie wersji przedpremierowych rozszerzeń, co ułatwia testowanie rozszerzeń i procesu instalacji rozszerzeń w tym samym środowisku, w którym zostaną one ostatecznie opublikowane.

Ta funkcja umożliwia cykl rozwoju podobny do tego:

  1. Twórz i szybko iteruj rozszerzenie za pomocą Pakietu emulatorów Firebase.

  2. Przetestuj rozszerzenie w prawdziwym projekcie, instalując je ze źródła lokalnego:

    firebase ext:install /path/to/extension
    firebase deploy --only extensions
  3. Prześlij wersję przedpremierową do Centrum rozszerzeń (patrz poniżej). Rozpowszechniaj link do instalacji, aby przeprowadzić szersze testy, i w razie potrzeby przesyłaj kolejne wersje przedpremierowe.

  4. Prześlij ostateczną, stabilną wersję do Centrum rozszerzeń (patrz poniżej) i prześlij ją do sprawdzenia. Jeśli rozszerzenie przejdzie weryfikację, zostanie opublikowane w Centrum rozszerzeń.

  5. Zwiększ numer wersji w pliku extension.yaml i powtórz ten cykl w przypadku następnej wersji rozszerzenia.

Przesyłanie nowego rozszerzenia

Aby przesłać rozszerzenie po raz pierwszy:

  1. Opcjonalnie: zatwierdź kod w publicznym repozytorium GitHub.

  2. Uruchom polecenie ext:dev:upload wiersza poleceń Firebase:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Lokalne źródło

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local

    W wywołaniu polecenia określasz te parametry:

    • Identyfikator wydawcy, który został przez Ciebie zarejestrowany.

    • Ciąg identyfikatora, który będzie identyfikować rozszerzenie. Nazwij rozszerzenia w tym formacie:firebase-product-description-of-tasks-performed. Na przykład: firestore-bigquery-export

    Polecenie poprosi Cię o dodatkowe informacje:

    • Jeśli przesyłasz z GitHuba:

      • Adres URL repozytorium rozszerzenia w GitHubie. Pamiętaj, że repozytorium może zawierać wiele rozszerzeń, o ile każde z nich ma unikalny katalog główny.

        Gdy po raz pierwszy prześlesz nowe rozszerzenie, repozytorium zostanie zarejestrowane jako kanoniczne źródło rozszerzenia.

      • Katalog w repozytorium, który zawiera rozszerzenie.

      • Odwołanie Git do commita, z którego chcesz utworzyć wersję rozszerzenia. Może to być hash zatwierdzenia, tag lub nazwa gałęzi.

    • Etap publikacji przesyłanej wersji.

      Etapy alpha, betarc (wersja kandydująca) służą do przesyłania wersji przedpremierowych, które testerzy mogą zainstalować. Użyj jednego z tych etapów podczas pierwszego przesyłania nowego rozszerzenia.

      Etap stable służy do publikowania wersji publicznych w Centrum rozszerzeń. Przesłanie wersji stable automatycznie rozpocznie proces weryfikacji, a jeśli zakończy się on pomyślnie, rozszerzenie zostanie opublikowane.

    Zauważ, że nie podajesz numeru wersji – ta wartość pochodzi z pliku extension.yaml. Gdy prześlesz wersję rozszerzenia przed premierą, do numeru wersji zostanie dołączony etap i numer przesyłania. Jeśli na przykład extension.yaml określa wersję 1.0.1 i prześlesz wersję kandydata, spowoduje to utworzenie wersji 1.0.1-rc.0. Przesłanie kolejnej wersji kandydata o tej samej wersji spowoduje automatyczne zwiększenie liczby, co da w wyniku 1.0.1-rc.1 itd.

Po przesłaniu wersji przedpremierowej rozszerzenia możesz udostępnić ją innym osobom do testowania. Użytkownicy mogą zainstalować rozszerzenie na 2 sposoby:

  • W konsoli: użytkownicy mogą zainstalować rozszerzenie, klikając link w tym formacie:

    https://console.firebase.google.com/project/_/extensions/install?ref=your_publisher_id/your_extension_id@version

    Możesz udostępnić testerom bezpośredni link.

  • Za pomocą interfejsu wiersza poleceń: użytkownicy mogą zainstalować rozszerzenie, przekazując ciąg znaków z identyfikatorem rozszerzenia do polecenia ext:install:

    firebase ext:install your_publisher_id/your_extension_id@version \
        --project=destination_project_id
    

Przesyłanie zaktualizowanej wersji

Po przesłaniu pierwszej wersji rozszerzenia możesz przesyłać aktualizacje, aby rozwiązywać problemy, dodawać funkcje lub przechodzić do kolejnych etapów publikacji. Gdy prześlesz nową wersję, użytkownicy, którzy mają zainstalowaną starszą wersję rozszerzenia, zobaczą w Firebase konsoli prośbę o uaktualnienie.

Aby przesłać aktualizację:

  1. Opcjonalnie: zatwierdź kod w publicznym repozytorium Git.

  2. Uruchom polecenie ext:dev:upload wiersza poleceń Firebase:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Tym razem nie zobaczysz prośby o określenie repozytorium GitHub ani głównego katalogu rozszerzenia, ponieważ zostały one już skonfigurowane dla Twojego rozszerzenia. Jeśli od tego czasu zmienisz strukturę repozytorium lub przeniesiesz się do nowego repozytorium, możesz to zmienić za pomocą argumentów polecenia --root--repo.

    Lokalne źródło

    cd /path/to/extension
    firebase ext:dev:upload your_publisher_id/your_extension_id --local

Przesyłanie rozszerzenia do publikacji

Gdy rozszerzenie będzie gotowe do publicznego udostępnienia:

  1. Zatwierdź kod w publicznym repozytorium Git. (Wymagane w przypadku wersji publicznych).

  2. Uruchom polecenie ext:dev:upload wiersza poleceń Firebase, określając stable jako etap wydania:

    firebase ext:dev:upload your_publisher_id/your_extension_id
  3. Jeśli masz już opublikowaną wersję rozszerzenia, przesłanie nowej stabilnej wersji spowoduje automatyczne przesłanie rozszerzenia do sprawdzenia.

    Jeśli przesłano pierwszą stabilną wersję rozszerzenia, znajdź je w panelu wydawcy i kliknij Opublikuj w Centrum rozszerzeń.

Po przesłaniu weryfikacja może potrwać kilka dni. Jeśli rozszerzenie zostanie zaakceptowane, opublikujemy je w Centrum rozszerzeń. Jeśli zostanie odrzucona, otrzymasz wiadomość z wyjaśnieniem przyczyny. Następnie możesz rozwiązać zgłoszone problemy i ponownie przesłać ją do sprawdzenia.

Aby przyspieszyć weryfikację i zwiększyć szanse na jej pomyślne przejście za pierwszym razem, przed przesłaniem dokładnie sprawdź:

  • Rozszerzenie i proces instalacji zostały dokładnie przetestowane.
  • Dokumentacja jest kompletna i poprawna oraz dobrze wyświetla się w konsoli Firebase.
  • Twoja nazwa wydawcy i marka jasno i dokładnie identyfikują Cię jako wydawcę.
  • Nazwa, opis i ikona rozszerzenia jasno i dokładnie przedstawiają jego przeznaczenie.
  • Zastosowano przydatne i dokładne tagi.
  • extension.yaml zadeklarowano wszystkie interfejsy API Google i innych firm, których używasz, oraz wszystkie typy zdarzeń emitowane przez rozszerzenie.
  • Prosisz o dostęp tylko do ról niezbędnych do działania rozszerzenia i wyraźnie wyjaśniasz użytkownikom, dlaczego potrzebujesz takiego dostępu.
  • Pliki źródłowe są wyraźnie licencjonowane na warunkach Apache-2.0.

Zarządzanie przesłanymi i opublikowanymi rozszerzeniami

Wyświetlanie listy przesłanych rozszerzeń

Aby wyświetlić listę rozszerzeń przesłanych pod Twoim identyfikatorem wydawcy, wykonaj jedną z tych czynności:

Panel wydawcy

Możesz je wyświetlić na panelu wydawcy.

wiersz poleceń Firebase

Uruchom polecenie ext:dev:list:

firebase ext:dev:list your_publisher_id

Wyświetlanie wykorzystania przesłanych rozszerzeń

Aby wyświetlić wykorzystanie rozszerzeń przesłanych pod Twoim identyfikatorem wydawcy, wykonaj jedną z tych czynności:

Panel wydawcy

Panel wydawcy zawiera skumulowane dane o wykorzystaniu wszystkich rozszerzeń i poszczególne dane dotyczące każdego rozszerzenia.

wiersz poleceń Firebase

Uruchom polecenie ext:dev:usage:

firebase ext:dev:usage your_publisher_id

Wycofywanie wersji rozszerzenia

W pewnym momencie możesz chcieć wycofać starszą wersję rozszerzenia. Jeśli na przykład opublikujesz nową wersję, która usuwa krytyczny błąd lub aktualizuje zależność z ważną aktualizacją zabezpieczeń, ważne jest, aby uniemożliwić nowym użytkownikom instalowanie starej wersji i zachęcić obecnych użytkowników do uaktualnienia.

Aby wycofać wersję rozszerzenia, wykonaj jedną z tych czynności:

Panel wydawcy

  1. W panelu wydawcy kliknij rozszerzenie, aby otworzyć widok szczegółów.
  2. Wybierz wersję, którą chcesz wycofać.
  3. Kliknij Wycofaj wersję.

wiersz poleceń Firebase

Uruchom polecenie ext:dev:deprecate:

firebase ext:dev:deprecate your_publisher_id/your_extension_id versions \
    [--message "deprecation_message"]

Możesz określić jedną wersję lub zakres wersji. Przykłady:

  • 1.0.2
  • 1.1.0-1.1.7
  • <1.2.0
  • 1.1.*

Wycofane wersje rozszerzenia nie są wymienione w centrum rozszerzeń i nie można ich zainstalować. Użytkownicy, których projekty mają zainstalowaną wycofaną wersję, zobaczą komunikat zachęcający do aktualizacji. W międzyczasie mogą nadal korzystać z rozszerzenia i je ponownie konfigurować.

Jeśli każda wersja rozszerzenia jest wycofana, rozszerzenie jest uznawane za wycofane i zostanie usunięte z Centrum rozszerzeń. Przesłanie nowej wersji wycofanego rozszerzenia automatycznie rozpocznie proces sprawdzania, a po zaakceptowaniu zostanie ono ponownie opublikowane w centrum rozszerzeń.

Aby cofnąć wycofanie, użyj panelu wydawcy lub uruchom polecenie ext:dev:undeprecate wiersza poleceń Firebase:

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Dodatek. Rozwiązywanie problemów z błędami kompilacji

Gdy przesyłasz rozszerzenie, backend najpierw kompiluje kod źródłowy, wykonując te czynności:

  1. Klonuje repozytorium GitHub i pobiera określony odnośnik źródłowy.

  2. Instaluje zależności NPM, uruchamiając polecenie npm clean-install w każdym katalogu źródłowym funkcji określonym w extension.yaml (patrz sourceDirectory w zasobach funkcji Cloud Functions).

    Pamiętaj:

    • Każdy plik package.json musi mieć odpowiadający mu plik package-lock.json. Więcej informacji znajdziesz w artykule npm-ci.

    • Skrypty poinstalacyjne nie będą uruchamiane podczas instalacji zależności. Jeśli kompilacja kodu źródłowego zależy od skryptów po instalacji, przed przesłaniem zmień jej strukturę.

  3. Kompiluje kod, uruchamiając npm run build w każdym katalogu źródłowym funkcji określonym w extension.yaml.

W ostatecznym pakiecie rozszerzenia, który zostanie udostępniony, zapisany będzie tylko katalog główny rozszerzenia.

Jeśli podczas przesyłania rozszerzenia pojawią się błędy kompilacji, odtwórz powyższe kroki kompilacji lokalnie w nowym katalogu, aż nie będzie żadnych błędów, a następnie spróbuj ponownie przesłać rozszerzenie.