Funkcje Firebase Nx Nrwl

Odkąd Nrwl udostępnił wsparcie dla aplikacji węzłów, nie mogłem się doczekać podobnej obsługi funkcji Firebase. Stworzyłem nawet w tym celu problem na GitHubie . W chwili pisania tego tekstu jest nadal otwarty, dlatego zdecydowałem się stworzyć własne rozwiązanie.

Problem

Po zainicjowaniu funkcji Firebase za firebase initjego pomocą tworzy podkatalog funkcji z własnymi package.jsoni node_modules. To niedobrze. Chcemy udostępniać kod funkcjom i zarządzać nim za pomocą Nx.

Cel

  • Funkcje Firebase istnieją jako aplikacja węzłowa
  • Jest tylko jeden package.jsoninode_modules
  • Funkcje mogą używać udostępnionego kodu zlibs

Zakładamy, że masz działający projekt Nrwl z aplikacją Angular. Zalecane jest również posiadanie konta Firebase i zrozumienie, czym są Funkcje Firebase.

Rozwiązanie

Skonfiguruj Firebase

Jeśli jeszcze tego nie zrobiłeś, zainstaluj firebase-toolsi zaloguj się:

yarn global add firebase-tools
firebase login

{
  "projects": {
    "default": "your-firebase-project-name"
  }
}

Jak stwierdzono w celu, funkcje mają być oparte na node-app. Aby to zrobić, utwórz node-appnazwane „funkcje”:

ng add @nrwl/node # Adds Node capabilities
ng g @nrwl/node:application functions

Zainstaluj zależności funkcji Firebase

yarn add firebase firebase-admin firebase-functions

import * as functions from 'firebase-functions';

// // Start writing Firebase Functions
// // https://firebase.google.com/docs/functions/typescript
//
export const helloWorld = functions.https.onRequest((request, response) => {
  response.send('Hello from Firebase!');
});

Aby skonfigurować Funkcje Firebase, aby były zrozumiałe, utwórz firebase.jsonw katalogu głównym:

{
  "functions": {
    "predeploy": [
      "yarn lint functions",
      "yarn build functions --prod"
    ],
    "source": "/"
  }
}

  • sourcewskazuje na katalog główny projektu. Ponieważ mamy tylko jeden package.jsoni znajduje się on w katalogu głównym, musi tam wskazywać.

"main": "dist/apps/functions/main.js",
"engines": {
  "node": "10"
},

  • engineinformuje Firebase, na której wersji węzła powinien zostać uruchomiony. W chwili pisania tego tekstu node v10obsługiwany jest najnowszy. NIE MOŻESZ również określić yarnani npmwersji w tym miejscu, ponieważ spowoduje to konflikt z firebase.

Obsługa funkcji Firebase jest nieco bardziej skomplikowana niż typowa aplikacja węzła. Dodaj tę zależność od deweloperów:

yarn add concurrently -D

"firebase:serve": "concurrently --kill-others \"yarn run build functions --watch\" \"firebase serve --only functions\"",
"firebase:shell": "concurrently --kill-others \"yarn run build functions --watch\" \"firebase functions:shell\" --raw",
"firebase:deploy": "firebase deploy",

  • yarn firebase:shell - uruchamiaj funkcje powłoki lokalnie
  • yarn firebase:deploy --only functions - wdrażanie funkcji

W chwili pisania tego tekstu firebase servesłuży tylko funkcjom z distkatalogu. Aby to działało, używamy concurrentlydo działania buildz watchflagą i serve„współbieżnie”.

Podsumowanie

To prawie wszystko to obejmuje. Łatwy i elegancki sposób na włączenie funkcji Firebase do projektu Nx. Kod źródłowy tego można znaleźć tutaj . Jednak jest aktywnie rozwijany, więc jeśli chcesz przejrzeć TĘ wersję, sprawdź to zatwierdzenie .

Suggested posts

Moje najczęściej używane zasoby dotyczące kodowania

Moje najczęściej używane zasoby dotyczące kodowania

W tym tygodniu otrzymałem wiadomość e-mail od członka codziennej listy e-mailowej. Chcieli wiedzieć: Jakie zasoby odwiedzasz codziennie, co tydzień i co miesiąc? Świetne pytanie! Cieszę się, że mogę podzielić się spostrzeżeniami na temat mojego przepływu pracy i najlepszych zasobów, z których korzystam.

Seria Lit Library — 1: Głębokie zanurzenie w bibliotece lit-html

Seria Lit Library — 1: Głębokie zanurzenie w bibliotece lit-html

Celem tej serii blogów jest zagłębienie się w bibliotekę Lit i uzyskanie pełnego zrozumienia jej unikalnych funkcji oraz tego, jak wyróżnia się na tle innych bibliotek i frameworków na rynku. Cykl podzielony jest na trzy części, obejmujące takie tematy jak 1.

Related posts

Finansowanie usuwania dwutlenku węgla w RO24

Podział wniosków o środki Carbon180 na różne ścieżki

Finansowanie usuwania dwutlenku węgla w RO24

Autor: Alyson Lee, doradca zarządzający ds. spraw rządowych Coroczny proces przyznawania środków przez rząd federalny ma kluczowe znaczenie dla naszych wysiłków na rzecz sfinansowania usuwania dwutlenku węgla (CDR). Każdego roku Carbon180 przesyła prośby do różnych biur kongresowych, aby pomóc wskazać, gdzie będą płynąć dolary w przyszłym roku.

Rewolucja w miejscu pracy: najlepsi eksperci omawiają pracę hybrydową i zdalną

Rewolucja w miejscu pracy: najlepsi eksperci omawiają pracę hybrydową i zdalną

W dzisiejszym szybko zmieniającym się krajobrazie biznesowym koncepcja pracy hybrydowej i zdalnej nabrała bezprecedensowego rozpędu. Ponieważ firmy wciąż dostosowują się do zmieniających się potrzeb i oczekiwań swoich pracowników, eksperci z różnych dziedzin zebrali się, aby omówić korzyści, wyzwania i przyszłość tego transformacyjnego sposobu pracy.

Jak uratować planetę i zarabiać pieniądze

Jak uratować planetę i zarabiać pieniądze

Ile razy bez zastanowienia wyrzuciłeś plastikową butelkę, szklany słoik, aluminiową puszkę lub pakiet zielonej energii? Ile razy chciałeś dostać coś w zamian za ich recykling? Jeśli jesteś jak większość ludzi, odpowiedź brzmi prawdopodobnie wiele razy. Recykling jest często postrzegany jako kłopot, przykry obowiązek lub obowiązek, który nie przynosi żadnych natychmiastowych ani wymiernych korzyści.

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Co możesz zrobić w swoim okresie oczekiwania (czekając na wylądowanie Twoja pierwsza praca w technologii)

Przejście do nowej kariery może być niezwykle trudne, jeśli spróbujesz zrobić to sam. Ważne jest, aby znaleźć odpowiedzialnych partnerów, którzy są na tym samym poziomie uczenia się co ty, którzy mają podobne cele, wytrwałość i motywację.