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ć źródło, które można zweryfikować publicznie. Zamiast przesyłać kod źródłowy rozszerzenia bezpośrednio do Centrum rozszerzeń, musisz określić lokalizację źródła. Centrum rozszerzeń pobierze go i skompiluje.

Obecnie oznacza to, że kod źródłowy rozszerzenia musi być dostępny w publicznym repozytorium GitHub.

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

  • Użytkownicy mogą sprawdzić kod źródłowy konkretnej wersji rozszerzenia, która zostanie zainstalowana.
  • Możesz mieć pewność, że przesyłasz tylko to, co chcesz przesłać, a nie np. pliki w trakcie tworzenia lub pliki, które pozostały po zakończeniu prac.

Zalecany cykl tworzenia

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

Dzięki tej funkcji możesz stosować cykl tworzenia 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). Udostępnij link instalacyjny do szerszych testów i w razie potrzeby iteruj, przesyłając więcej wersji przedpremierowych.

  4. Prześlij ostateczną, stabilną wersję do Centrum rozszerzeń (patrz poniżej) i prześlij ją do sprawdzenia. Jeśli rozszerzenie przejdzie sprawdzenie, 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 w wierszu 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śl te informacje:

    • Zarejestrowany identyfikator wydawcy .

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

    Polecenie wyświetli prośbę o podanie dodatkowych informacji:

    • Jeśli przesyłasz z GitHub:

      • Adres URL repozytorium rozszerzenia w GitHub. 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.

      • Odniesienie Git do zatwierdzenia, z którego chcesz utworzyć źródło wersji rozszerzenia. Może to być skrót zatwierdzenia, tag lub nazwa gałęzi.

    • Etap wersji, którą przesyłasz.

      Etapy alpha, beta i rc (wersja kandydująca do publikacji) służą do przesyłania wersji przedpremierowych, które mogą zainstalować testerzy. Użyj jednego z tych etapów do początkowego przesłania nowego rozszerzenia.

      Etap stable służy do publikowania wersji publicznych w Centrum rozszerzeń. Przesłanie wersji stable automatycznie rozpocznie sprawdzanie, a jeśli rozszerzenie przejdzie je pomyślnie, zostanie opublikowane.

    Zwróć uwagę, że nie musisz podawać numeru wersji – ta wartość pochodzi z pliku extension.yaml. Gdy prześlesz wersję przedpremierową rozszerzenia, do wersji zostanie dołączony etap i numer przesłania. Jeśli na przykład w pliku extension.yaml określono wersję 1.0.1 i prześlesz wersję kandydującą do publikacji, będzie to wersja 1.0.1-rc.0. Przesłanie kolejnej wersji kandydującej do publikacji tej samej wersji automatycznie zwiększy liczbę, co spowoduje utworzenie wersji 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ć Twoje 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.

  • W interfejsie wiersza poleceń: użytkownicy mogą zainstalować rozszerzenie, przekazując ciąg znaków identyfikatora 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 kolejnego etapu wersji. Gdy prześlesz nową wersję, użytkownicy, którzy mają zainstalowaną starszą wersję Twojego rozszerzenia, zobaczą w konsoli Firebase prośbę o uaktualnienie.

Aby przesłać aktualizację:

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

  2. Uruchom polecenie ext:dev:upload w wierszu poleceń Firebase:

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id

    Tym razem nie zobaczysz prośby o podanie repozytorium GitHub ani katalogu głównego rozszerzenia, ponieważ zostały one już skonfigurowane dla Twojego rozszerzenia. Jeśli od tego czasu zmienisz strukturę repozytorium lub przejdziesz do nowego repozytorium, możesz zmienić te ustawienia za pomocą argumentów polecenia --root i --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 w wierszu poleceń Firebase, określając stable jako etap wersji:

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

    Jeśli prześlesz pierwszą stabilną wersję rozszerzenia, znajdź rozszerzenie w swoim panelu wydawcy, i kliknij Opublikuj w Centrum rozszerzeń.

Po przesłaniu sprawdzenie może potrwać kilka dni. Jeśli rozszerzenie zostanie zaakceptowane, zostanie opublikowane w Centrum rozszerzeń. Jeśli zostanie odrzucone, otrzymasz wiadomość z wyjaśnieniem przyczyny. Możesz wtedy rozwiązać zgłoszone problemy i ponownie przesłać rozszerzenie do sprawdzenia.

Aby przyspieszyć sprawdzanie i zwiększyć szanse na pozytywny wynik za pierwszym razem, przed przesłaniem sprawdź te kwestie:

  • Rozszerzenie i proces instalacji zostały dokładnie przetestowane.
  • Dokumentacja jest kompletna i prawidłowa oraz dobrze wyświetla się w konsoli Firebase.
  • Nazwa wydawcy i branding jasno i dokładnie identyfikują Cię jako wydawcę.
  • Nazwa, opis i ikona rozszerzenia jasno i dokładnie odzwierciedlają jego przeznaczenie.
  • Używasz przydatnych i dokładnych tagów.
  • W pliku extension.yaml zadeklarowano wszystkie interfejsy API Google i inne niż Google, 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 jasno wyjaśniasz użytkownikom, dlaczego potrzebujesz takiego dostępu.
  • Pliki źródłowe są wyraźnie licencjonowane na warunkach licencji 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

Wyświetl je w 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 zbiorcze dane o wykorzystaniu wszystkich Twoich rozszerzeń oraz dane dotyczące poszczególnych rozszerzeń.

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 rozwiązuje krytyczny błąd lub aktualizuje zależność z ważną aktualizacją zabezpieczeń, ważne jest, aby uniemożliwić nowym użytkownikom instalowanie starszej wersji i zachęcić dotychczasowych 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ć jego 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ą widoczne w Centrum rozszerzeń i nie można ich zainstalować. Użytkownicy, którzy mają zainstalowaną wycofaną wersję w swoich projektach, zobaczą komunikat zachęcający do uaktualnienia. W międzyczasie mogą nadal korzystać z rozszerzenia i zmieniać jego konfigurację.

Jeśli wszystkie wersje rozszerzenia zostaną wycofane, rozszerzenie zostanie uznane za wycofane i usunięte z Centrum rozszerzeń. Przesłanie nowej wersji wycofanego rozszerzenia automatycznie rozpocznie sprawdzanie, a po zaakceptowaniu rozszerzenie zostanie ponownie opublikowane w Centrum rozszerzeń.

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

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

Dodatek: rozwiązywanie problemów z błędami kompilacji

Gdy prześlesz rozszerzenie, backend najpierw skompiluje kod źródłowy, wykonując te czynności:

  1. Klonuje repozytorium GitHub i pobiera określone źródło.

  2. Instaluje zależności NPM, uruchamiając polecenie npm clean-install w każdym katalogu źródłowym funkcji określonym w pliku extension.yaml (patrz sourceDirectory w zasobach 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 poinstalacyjnych, przed przesłaniem zmień kod.

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

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

Jeśli podczas przesyłania rozszerzenia wystąpią błędy kompilacji, powtórz opisane powyżej kroki kompilacji lokalnie w nowym katalogu, aż nie wystąpią żadne błędy, a następnie spróbuj ponownie przesłać rozszerzenie.