Opublikuj rozszerzenie

Z tego artykułu dowiesz się, jak opublikować rozszerzenie w Centrum rozszerzeń.

Zanim zaczniesz

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

Możliwe do zweryfikowania ź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ń, wystarczy, że podasz lokalizację źródłową, a centrum rozszerzeń go stamtąd pobierze i skompiluje.

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

Przesyłanie z możliwego do zweryfikowania źródła ma kilka zalet:

  • Użytkownicy mogą sprawdzać kod źródłowy konkretnej wersji zainstalowanego rozszerzenia.
  • Możesz mieć pewność, że przesyłasz tylko to, co chcesz przesłać, a nie np. pliki w toku lub przypadkowe pliki pozostałe z programu.

Zalecany cykl programowania

Narzędzia dla programistów Rozszerzeń w Firebase obsługują przesyłanie przedpremierowych wersji rozszerzeń, dzięki czemu możesz łatwo testować rozszerzenia i proces ich instalacji w tym samym środowisku, w którym zostaną udostępnione.

Ta funkcja umożliwia cykl programowania w ten sposób:

  1. Twórz i szybko ulepszaj rozszerzenia, korzystając z 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 do Centrum rozszerzeń wersję przedpremierową (patrz poniżej). Udostępnij link instalacyjny, aby przeprowadzić szersze testy, i w razie potrzeby prześlij 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 weryfikację, zostanie opublikowane w Extension Hub.

  5. Zwiększ numer wersji w extension.yaml i powtórz ten cykl dla kolejnej wersji rozszerzenia.

Prześlij nowe rozszerzenie

Aby przesłać rozszerzenie po raz pierwszy:

  1. Opcjonalnie: prześlij kod do publicznego repozytorium GitHub.

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

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Źródło lokalne

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

    W wywołaniu polecenia podajesz te informacje:

    • Zarejestrowany identyfikator wydawcy.

    • Ciąg identyfikatora identyfikujący rozszerzenie. Nazwij rozszerzenia w takim formacie: firebase-product-description-of-tasks-performed. Przykład: firestore-bigquery-export

    Polecenie spowoduje wyświetlenie dodatkowych informacji:

    • Jeśli przesyłasz dane 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, zostanie ono zarejestrowane jako źródło kanoniczne dla tego rozszerzenia.

      • Katalog w repozytorium zawierający Twoje rozszerzenie.

      • Dokumentacja Git zatwierdzenia zatwierdzenia, na podstawie którego chcesz utworzyć źródło wersji rozszerzenia. Może to być hasz zatwierdzenia, tag lub nazwa gałęzi.

    • Etap publikowania przesyłanej wersji.

      Etapy alpha, beta i rc (kandydat do wersji) służą do przesyłania przedpremierowych wersji do zainstalowania przez testerów. Przy pierwszym przesyłaniu nowego rozszerzenia wykorzystaj jeden z tych etapów.

      Etap stable jest używany do publikowania wersji publicznych w Centrum rozszerzeń. Przesłanie wersji stable spowoduje automatyczne sprawdzenie i opublikowanie rozszerzenia.

    Zwróć uwagę, że nie określasz numeru wersji – ta wartość pochodzi z pliku extension.yaml. Po przesłaniu przedpremierowej wersji rozszerzenia do wersji dołączany jest numer etapu i numer przesyłania. Jeśli na przykład funkcja extension.yaml wskaże wersję 1.0.1 i prześlesz kandydującą wersję, otrzymasz wersję 1.0.1-rc.0. Przesłanie kolejnej kandydującej wersji w tej samej wersji automatycznie zwiększy liczbę, generując 1.0.1-rc.1 itd.

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

  • Za pomocą 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 identyfikatora rozszerzenia do polecenia ext:install:

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

Prześlij zaktualizowaną wersję

Po przesłaniu pierwszej wersji rozszerzenia możesz przesyłać aktualizacje, aby rozwiązać problemy, dodać funkcje lub przyspieszyć etap wdrażania. Gdy prześlesz nową wersję, użytkownicy, którzy mają zainstalowaną starszą wersję rozszerzenia, zostaną poproszeni o przejście na nowszą wersję w konsoli Firebase.

Aby przesłać aktualizację:

  1. Opcjonalnie: prześlij kod do publicznego repozytorium Git.

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

    GitHub

    firebase ext:dev:upload your_publisher_id/your_extension_id
    

    Tym razem nie poprosimy Cię o określenie repozytorium GitHub ani katalogu głównego rozszerzenia, ponieważ zostały już one skonfigurowane dla Twojego rozszerzenia. Jeśli od tego czasu struktura repozytorium została zrefaktoryzowana lub przeniesiona do nowego, możesz to zmienić za pomocą argumentów poleceń --root i --repo.

    Źródło lokalne

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

Przesyłanie przedłużenia terminu do publikacji

Gdy wszystko będzie gotowe do publicznego udostępnienia rozszerzenia:

  1. Zatwierdź swój kod w publicznym repozytorium Git. (wymagane w przypadku wersji publicznych).

  2. Uruchom polecenie ext:dev:upload w interfejsie wiersza poleceń Firebase, wskazując stable jako etap wydania:

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

    Jeśli została przesłana pierwsza stabilna wersja rozszerzenia, znajdź rozszerzenie w panelu wydawcy i kliknij Opublikuj w Centrum rozszerzeń.

Weryfikacja może potrwać kilka dni od momentu przesłania. Jeśli Twoje zgłoszenie zostanie zaakceptowane, opublikujemy rozszerzenie w Centrum rozszerzeń. W przypadku odrzucenia otrzymasz wiadomość z wyjaśnieniem przyczyny. Możesz wtedy rozwiązać zgłoszone problemy i ponownie przesłać zgłoszenie do sprawdzenia.

Aby przyspieszyć proces sprawdzania i zwiększyć szanse na zaliczenie za pierwszym razem, przed przesłaniem formularza dokładnie sprawdź:

  • Rozszerzenie i proces instalacji zostały dokładnie przetestowane.
  • Twoja dokumentacja jest kompletna i poprawna oraz poprawnie wyświetla się w konsoli Firebase.
  • Nazwa i marka wydawcy jasno i dokładnie identyfikują Cię jako wydawcę.
  • Nazwa, opis i ikona rozszerzenia jasno i dokładnie określają jego przeznaczenie.
  • Zastosowano pomocne i dokładne tagi.
  • W extension.yaml zadeklarowano wszystkie interfejsy API Google i innych firm, których używasz, a także wszystkie typy zdarzeń emitowane przez Twoje rozszerzenie.
  • Prosisz o przyznanie dostępu tylko do ról niezbędnych do działania rozszerzenia i jasno wyjaśniłeś użytkownikom, dlaczego potrzebujesz takiego dostępu.
  • Twoje pliki źródłowe są wyraźnie licencjonowane zgodnie z warunkami: Apache-2.0.

Zarządzanie przesłanymi i opublikowanymi rozszerzeniami

Wyświetlanie listy przesłanych rozszerzeń

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

Panel wydawcy

Możesz je wyświetlić 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 sprawdzić wykorzystanie rozszerzeń przesłanych z Twoim identyfikatorem wydawcy, wykonaj jedną z tych czynności:

Panel wydawcy

Panel wydawcy zawiera łączne dane o wykorzystaniu wszystkich rozszerzeń i poszczególne dane o każdym rozszerzeniu.

wiersz poleceń Firebase

Uruchom polecenie ext:dev:usage:

firebase ext:dev:usage your_publisher_id

Wycofywanie wersji rozszerzenia

W pewnym momencie możesz zdecydować się na wycofanie starej wersji rozszerzenia. Jeśli na przykład opublikujesz nową wersję, która zawiera błąd krytyczny, lub zaktualizujesz zależność przy użyciu ważnej aktualizacji zabezpieczeń, należy uniemożliwić nowym użytkownikom instalowanie starej wersji i zachęcić obecnych użytkowników do przejścia na nowszą wersję.

Aby zrezygnować z wersji 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ć 1 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ą wyświetlane w Centrum rozszerzeń i nie można ich zainstalować. Użytkownicy, których projekty mają zainstalowaną wycofaną wersję, zobaczą komunikat zachęcający ich do przejścia na nową wersję. Tymczasem nadal będą mogli używać rozszerzenia i ponownie go konfigurować.

Jeśli każda wersja rozszerzenia zostanie wycofana, rozszerzenie zostanie uznane za wycofane i usunięte z Centrum rozszerzeń. Przesłanie nowej wersji wycofanego rozszerzenia spowoduje automatyczne rozpoczęcie sprawdzania i – po jego zaakceptowaniu, ponowne opublikowanie rozszerzenia w Centrum rozszerzeń.

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

firebase ext:dev:undeprecate your_publisher_id/your_extension_id versions

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

Gdy prześlesz rozszerzenie, backend najpierw kompiluje kod źródłowy w ten sposób:

  1. Kopiuje repozytorium GitHub i sprawdza podane odwołanie źródłowe.

  2. Instaluje zależności NPM przez uruchomienie polecenia npm clean-install w każdym katalogu źródłowym funkcji określonym w extension.yaml (zobacz sourceDirectory w sekcji Zasoby funkcji w Cloud Functions).

    Pamiętaj:

    • Każdy plik package.json musi mieć odpowiedni plik package-lock.json. Więcej informacji znajdziesz tutaj: npm-ci.

    • Skrypty po instalacji nie będą uruchamiane podczas instalacji zależności. Jeśli kompilacja kodu źródłowego opiera się na skryptach po instalacji, przetwórz je przed przesłaniem.

  3. Tworzy kod, uruchamiając polecenie npm run build w każdym katalogu źródłowym funkcji podanym w extension.yaml.

W końcowym pakiecie rozszerzeń, który będzie udostępniany, zapisany zostanie tylko katalog główny rozszerzenia.

Jeśli podczas przesyłania rozszerzenia wystąpią błędy kompilacji, powtórz powyższe kroki kompilacji lokalnie w nowym katalogu, aż nie będzie żadnych błędów, a potem spróbuj przesłać ponownie.