Używanie Firebase w progresywnej aplikacji internetowej (PWA)

Progresywne aplikacje internetowe (PWA) to aplikacje internetowe zgodne z zestawem wytycznych, które mają zapewnić użytkownikom niezawodne, szybkie i angażujące korzystanie z aplikacji.

Firebase oferuje kilka usług, które pomogą Ci sprawnie dodawać funkcje progresywne do aplikacji, zapewniając zgodność ze sprawdzonymi metodami dotyczącymi aplikacji PWA. Oto niektóre z nich:

Sprawdzone metody dotyczące aplikacji PWA Jak usługi Firebase mogą Ci pomóc
Bezpieczeństwo
  • Hosting Firebase udostępnia certyfikaty SSL bez opłat dla Twojej domeny niestandardowej i domyślnej subdomeny Firebase.
  • Uwierzytelnianie Firebase umożliwia bezpieczne logowanie się użytkowników na różnych urządzeniach.
  • FirebaseUI stosuje sprawdzone metody dotyczące przepływów uwierzytelniania.
Szybkie ładowanie
  • Hosting Firebase obsługuje HTTP/2 oraz może buforować zarówno zawartość statyczną, jak i dynamiczną w globalnej sieci CDN.
  • Pakiet SDK Firebase JavaScript jest modułowy i możesz w razie potrzeby dynamicznie importować biblioteki.
Odporność sieci
  • Cloud Firestore umożliwia przechowywanie danych oraz dostęp do nich w czasie rzeczywistym i offline.
  • Uwierzytelnianie Firebase zachowuje stan uwierzytelniania użytkownika, nawet offline.
Angażowanie użytkowników
  • Komunikacja w chmurze Firebase umożliwia wysyłanie wiadomości push na urządzenia użytkowników.
  • Za pomocą Cloud Functions dla Firebase możesz zautomatyzować wiadomości zachęcające do ponownego zaangażowania na podstawie zdarzeń w chmurze.

Z tej strony dowiesz się, jak platforma Firebase może pomóc Ci w tworzeniu nowoczesnej, wysokiej wydajności PWA z wykorzystaniem naszego pakietu SDK Firebase JavaScript przeznaczonego do różnych przeglądarek.

Aby dodać Firebase do swojej aplikacji internetowej, zapoznaj się z naszym przewodnikiem dla początkujących.

Bezpieczeństwo

Od wyświetlania witryny po wdrożenie procesu uwierzytelniania – bardzo ważne jest, aby PWA zapewniała bezpieczny i zaufany przepływ pracy.

Udostępnianie aplikacji PWA przez HTTPS

Usługa hostingu Performant

HTTPS chroni integralność witryny oraz prywatność i bezpieczeństwo użytkowników. Aplikacje PWA muszą być udostępniane przez HTTPS.

Hosting Firebase domyślnie wyświetla zawartość aplikacji przez HTTPS. Możesz wyświetlać swoje treści w bezpłatnej subdomenie Firebase lub we własnej domenie niestandardowej. Nasza usługa hostingowa automatycznie i bezpłatnie udostępnia certyfikat SSL Twojej domeny niestandardowej.

Zapoznaj się z przewodnikiem dla początkujących do Hostingu Firebase, aby dowiedzieć się, jak możesz hostować PWA na platformie Firebase.

Zaoferuj bezpieczny proces uwierzytelniania

Odrzucanie przepływu elastycznego uwierzytelniania

FirebaseUI udostępnia oparty na Uwierzytelnianiu Firebase uproszczony proces uwierzytelniania elastycznego, który umożliwia aplikacji integrację zaawansowanego i bezpiecznego procesu logowania, który nie wymaga wysiłku. FirebaseUI automatycznie dostosowuje się do rozmiaru ekranu urządzenia użytkownika i postępuje zgodnie ze sprawdzonymi metodami uwierzytelniania.

FirebaseUI obsługuje wielu dostawców logowania. Aby dodać do aplikacji proces uwierzytelniania FirebaseUI, za pomocą zaledwie kilku linijek kodu skonfigurowanych dla dostawców logowania:

// FirebaseUI config.
var uiConfig = {
  signInSuccessUrl: 'URL',  // the URL to direct to upon success
  signInOptions: [
    firebase.auth.GoogleAuthProvider.PROVIDER_ID,
    firebase.auth.EmailAuthProvider.PROVIDER_ID
  ]
};

// Initialize the FirebaseUI widget using Firebase.
var ui = new firebaseui.auth.AuthUI(firebase.auth());
ui.start('#firebaseui-auth-container', uiConfig);

Więcej informacji o różnych opcjach konfiguracyjnych oferowanych przez FirebaseUI znajdziesz w dokumentacji na GitHubie.

Logowanie użytkowników na różnych urządzeniach

Logowanie się na różnych urządzeniach

Jeśli użyjesz FirebaseUI do integracji logowania jednym kliknięciem, Twoja aplikacja będzie mogła automatycznie logować użytkowników, nawet na różnych urządzeniach skonfigurowanych za pomocą danych logowania.

Włącz logowanie jednym kliknięciem w FirebaseUI, zmieniając jeden wiersz konfiguracji:

// FirebaseUI config.
var uiConfig = {
  signInSuccessUrl: 'URL',  // the URL to direct to upon success
  authMethod: 'https://accounts.google.com',
  signInOptions: firebase.auth.GoogleAuthProvider.PROVIDER_ID,
  // Enable one-tap sign-in.
  credentialHelper: firebaseui.auth.CredentialHelper.GOOGLE_YOLO
};

Więcej informacji o różnych opcjach konfiguracyjnych oferowanych przez FirebaseUI znajdziesz w dokumentacji na GitHubie.

Szybkie wczytywanie

Wysoka skuteczność zwiększa wygodę użytkowników, pomaga ich zatrzymać i zwiększa liczbę konwersji. Ważnym wymaganiem w przypadku PWA jest wysoka wydajność, np. krótki „czas do pierwszego znaczącego wyrenderowania” i „czas do interakcji”.

Efektywne wyświetlanie zasobów statycznych

Usługa hostingu Performant

Hosting Firebase wyświetla Twoje treści przez globalną sieć CDN i jest zgodny z HTTP/2. Gdy hostujesz zasoby statyczne w Firebase, my wszystko to konfigurujemy za Ciebie – nie musisz nic robić, aby korzystać z tej usługi.

Buforuj zawartość dynamiczną

Dzięki Hostingowi Firebase Twoja aplikacja internetowa może również udostępniać treści dynamiczne generowane po stronie serwera przez Cloud Functions lub skonteneryzowaną aplikację Cloud Run. Za pomocą tej usługi możesz buforować zawartość dynamiczną w potężnej globalnej sieci CDN za pomocą jednego wiersza kodu:

res.set('Cache-Control', 'public, max-age=300, s-maxage=600');

Ta usługa pozwala uniknąć dodatkowych wywołań backendu, przyspieszyć odpowiedzi i obniżyć koszty.

Zapoznaj się z naszą dokumentacją, aby dowiedzieć się, jak obsługiwać treści dynamiczne (obsługiwane przez Cloud Functions lub Cloud Run) i włączyć zapisywanie w pamięci podręcznej CDN w Hostingu Firebase.

Ładuj usługi tylko wtedy, gdy są potrzebne

Pakiet Firebase JavaScript SDK można częściowo zaimportować, by początkowy rozmiar pobieranych danych nie był minimalny. Wykorzystaj ten modułowy pakiet SDK, aby importować usługi Firebase, których potrzebuje Twoja aplikacja, tylko wtedy, gdy są potrzebne.

Aby np. zwiększyć początkową szybkość renderowania aplikacji, może ona najpierw wczytać Uwierzytelnianie Firebase. Następnie, gdy aplikacja będzie ich potrzebować, możesz wczytać inne usługi Firebase, takie jak Cloud Firestore.

Za pomocą menedżera pakietów, takiego jak webpack, możesz najpierw załadować Uwierzytelnianie Firebase:

import firebase from 'firebase/app';
import 'firebase/auth';

// Load Firebase project configuration.
const app = firebase.initializeApp(firebaseConfig);

Następnie, gdy musisz uzyskać dostęp do warstwy danych, wczytaj bibliotekę Cloud Firestore za pomocą dynamicznych importów:

import('firebase/firestore').then(() => {
  const firestore = app.firestore();
  // Use Cloud Firestore ...
});

Odporność sieci

Użytkownicy mogą nie mieć niezawodnego dostępu do internetu. Aplikacje PWA powinny działać podobnie do natywnych aplikacji mobilnych i w miarę możliwości działać offline.

Dostęp offline do danych aplikacji

Cloud Firestore obsługuje trwałość danych offline, dzięki czemu warstwy danych aplikacji mogą działać w trybie offline. W połączeniu z mechanizmami Service Worker do buforowania zasobów statycznych Twoja aplikacja PWA może w pełni działać offline. Możesz włączyć trwałość danych offline za pomocą jednego wiersza kodu:

firebase.firestore().enablePersistence().then(() => {
  const firestore = app.firestore();
  // Use Cloud Firestore ...
});

Zachowywanie stanu uwierzytelniania offline

Uwierzytelnianie Firebase przechowuje lokalną pamięć podręczną danych logowania, dzięki czemu zalogowany użytkownik pozostaje uwierzytelniony nawet wtedy, gdy jest offline. Obserwator stanu logowania będzie działać normalnie i aktywować się nawet wtedy, gdy użytkownik ponownie załaduje aplikację, będąc offline:

firebase.auth().onAuthStateChanged((user) => {
  if (user) {
    // User is signed-in ...
  } else {
    // User is signed out ...
  }
});

Zapoznaj się z naszą dokumentacją, aby zacząć korzystać z Cloud Firestore i Uwierzytelniania Firebase.

Angażuj użytkowników

Użytkownicy chcą wiedzieć, kiedy pojawią się nowe funkcje aplikacji, dlatego chcesz utrzymać wysokie zaangażowanie użytkowników. Skonfiguruj PWA, aby aktywnie i odpowiedzialnie kontaktować się z użytkownikami.

Wyświetlanie użytkownikom powiadomień push

Dzięki Komunikacji w chmurze Firebase możesz przesyłać odpowiednie powiadomienia z serwera na urządzenia użytkowników. Ta usługa umożliwia szybkie wyświetlanie użytkownikom powiadomień nawet wtedy, gdy aplikacja jest zamknięta.

Automatyczne ponowne angażowanie użytkowników

Za pomocą Cloud Functions dla Firebase wysyłaj do użytkowników wiadomości zachęcające do ponownego zaangażowania na podstawie zdarzeń w chmurze, takich jak zapis danych do Cloud Firestore lub usuwanie konta użytkownika. Możesz też wysłać do użytkownika powiadomienie push, gdy znajdzie on nowego obserwatora:

// Send push notification when user gets a new follower.
exports.sendNotification = functions.database.ref('/followers/{userUID}/{followerUID}')
    .onWrite((change, context) => {
      const userUID = context.params.userUID;
      const followerUID = context.params.followerUID;

      const tokens = getUserDeviceTokens(userUID);
      const name = getUserDisplayName(followerUID);

      // Notification details.
      const payload = {
        notification: {
          title: 'You have a new follower!',
          body: `${name} is now following you.`
        }
      };
      return admin.messaging().sendToDevice(tokens, payload);
    });