Firebase'i progresif web uygulamasında (PWA) kullanma

Progresif Web Uygulamaları (PWA'lar), kullanıcılarınızın güvenilir, hızlı ve ilgi çekici bir deneyim yaşamasını sağlamak için bir dizi yönergeye uyan web uygulamalarıdır.

Firebase, uygulamanıza verimli bir şekilde progresif özellikler ekleyerek birçok PWA en iyi uygulamasını karşılamanıza yardımcı olabilecek çeşitli hizmetler sunar. Örneğin:

PWA ile ilgili en iyi uygulama Firebase hizmetleri nasıl yardımcı olabilir?
Güvenli ve güvenilir
  • Firebase Hosting, özel alanınız ve varsayılan Firebase alt alanınız için ücretsiz SSL sertifikaları sağlar.
  • Firebase Authentication, kullanıcıların cihazlar arasında güvenli bir şekilde oturum açmasına olanak tanır.
  • FirebaseUI, kimlik doğrulama akışları için en iyi uygulamaları uygular.
Hızlı yükleme süresi
  • Firebase Hosting, HTTP/2'yi destekler ve hem statik hem de dinamik içeriğinizi küresel bir CDN'de önbelleğe alabilir.
  • Firebase JavaScript SDK modülerdir ve kitaplıkları gerektiğinde dinamik olarak içe aktarabilirsiniz.
Ağ esnekliği
  • Cloud Firestore ile verileri gerçek zamanlı olarak ve çevrimdışı depolayıp bunlara erişebilirsiniz.
  • Firebase Authentication, kullanıcının kimlik doğrulama durumunu çevrimdışı olsa bile korur.
Kullanıcılarla etkileşim kurma
  • Firebase Cloud Messaging, kullanıcılarınızın cihazlarına push mesajları göndermenizi sağlar.
  • Cloud Functions for Firebase ile yeniden etkileşim iletilerini bulut etkinliklerine göre otomatikleştirebilirsiniz.

Bu sayfada, Firebase platformunun tarayıcılar arası Firebase JavaScript SDK'mızı kullanarak modern ve yüksek performanslı bir PWA oluşturmanıza nasıl yardımcı olabileceğine dair genel bir bakış sunulmaktadır.

Firebase'i web uygulamanıza eklemek için başlangıç kılavuzumuzu ziyaret edin.

Güvenilir ve güvenli

Sitenize hizmet sunmaktan kimlik doğrulama akışı uygulamaya kadar, PWA'nızın güvenli ve güvenilir bir iş akışı sağlaması çok önemlidir.

PWA'nızı HTTPS üzerinden sunma

Yüksek performanslı barındırma hizmeti

HTTPS, web sitenizin bütünlüğünü, kullanıcılarınızın gizliliğini ve güvenliğini korur. PWA'lar HTTPS üzerinden sunulmalıdır.

Firebase Hosting, varsayılan olarak uygulamanızın içeriğini HTTPS üzerinden sunar. İçeriğinizi ücretsiz bir Firebase alt alan adında veya kendi özel alan adınızda yayınlayabilirsiniz. Barındırma hizmetimiz, özel alanınız için SSL sertifikasını otomatik olarak ve ücretsiz olarak sağlar.

PWA'nızı Firebase platformunda nasıl barındırabileceğinizi öğrenmek için Firebase Hosting başlangıç kılavuzunu ziyaret edin.

Güvenli bir kimlik doğrulama akışı sunma

Tam duyarlı kimlik doğrulama akışı

FirebaseUI, Firebase Authentication'ye dayalı, duyarlı bir kimlik doğrulama akışı sağlar. Bu akış, uygulamanızın az çabayla gelişmiş ve güvenli bir oturum açma akışı entegre etmesine olanak tanır. FirebaseUI, kullanıcının cihazlarının ekran boyutuna otomatik olarak uyum sağlar ve kimlik doğrulama akışlarıyla ilgili en iyi uygulamaları takip eder.

FirebaseUI, birden fazla oturum açma sağlayıcısını destekler. Oturum açma sağlayıcılar için yapılandırılmış yalnızca birkaç kod satırıyla uygulamanıza FirebaseUI yetkilendirme akışını ekleyin:

// 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);

FirebaseUI tarafından sunulan çeşitli yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için GitHub'daki dokümanlarımızı inceleyin.

Kullanıcıların cihazlar arasında oturum açmasını sağlama

Cihazlar arasında oturum açma

FirebaseUI kullanarak tek dokunuşla oturum açma özelliğini entegre ettiğinizde uygulamanız, kullanıcıların oturum açma kimlik bilgileriyle ayarladıkları farklı cihazlarda bile kullanıcıların oturumunu otomatik olarak açabilir.

Yapılandırmanın bir satırını değiştirerek FirebaseUI ile tek dokunuşla oturum açmayı etkinleştirin:

// 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
};

FirebaseUI tarafından sunulan çeşitli yapılandırma seçenekleri hakkında daha fazla bilgi edinmek için GitHub'daki dokümanlarımızı inceleyin.

Hızlı yükleme süresi

Yüksek performans, kullanıcı deneyimini iyileştirir, kullanıcıları elde tutmaya yardımcı olur ve dönüşümü artırır. Düşük "ilk anlamlı gösterim süresi" ve "etkileşime hazır olma süresi" gibi mükemmel performans, PWA'lar için önemli bir gerekliliktir.

Statik öğelerinizi verimli bir şekilde yayınlayın

Yüksek performanslı barındırma hizmeti

Firebase Hosting, içeriğinizi küresel bir CDN üzerinden yayınlar ve HTTP/2 ile uyumludur. Statik öğelerinizi Firebase ile barındırdığınızda tüm bunlar sizin için yapılandırılır. Bu hizmetten yararlanmak için yapmanız gereken başka bir işlem yoktur.

Dinamik içeriğinizi önbelleğe alma

Firebase Hosting ile web uygulamanız, Cloud Functions veya Cloud Run kapsayıcılı bir uygulama tarafından sunucu tarafında oluşturulan dinamik içerik de sunabilir. Bu hizmeti kullanarak tek bir kod satırıyla dinamik içeriğinizi güçlü bir global CDN'de önbelleğe alabilirsiniz:

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

Bu hizmet, arka ucunuza yapılan ek çağrıları önlemenize, yanıtları hızlandırmanıza ve maliyetleri düşürmenize olanak tanır.

Firebase Hosting ile dinamik içerik (Cloud Functions veya Cloud Run tarafından desteklenir) yayınlamayı ve CDN önbelleğe almayı nasıl etkinleştireceğinizi öğrenmek için dokümanlarımızı inceleyin.

Hizmetleri yalnızca gerektiğinde yükleme

İlk indirme boyutunu minimumda tutmak için Firebase JavaScript SDK'sı kısmen içe aktarılabilir. Bu modüler SDK'dan yararlanarak uygulamanızın ihtiyaç duyduğu Firebase hizmetlerini yalnızca ihtiyaç duyulduğunda içe aktarın.

Örneğin, uygulamanızın ilk boyama hızını artırmak için uygulamanız önce Firebase Authentication yükleyebilir. Ardından, uygulamanızın ihtiyacı olduğunda Cloud Firestore gibi diğer Firebase hizmetlerini yükleyebilirsiniz.

webpack gibi bir paket yöneticisi kullanarak önce Firebase Authentication yükleyebilirsiniz:

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

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

Ardından, veri katmanınıza erişmeniz gerektiğinde Cloud Firestore kitaplığını dinamik içe aktarmaları kullanarak yükleyin:

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

Ağ esnekliği

Kullanıcılarınızın güvenilir internet erişimi olmayabilir. PWA'lar, yerel mobil uygulamalara benzer şekilde davranmalı ve mümkün olduğunda çevrimdışı çalışmalıdır.

Uygulama verilerinize çevrimdışı olarak erişme

Cloud Firestore, çevrimdışı veri kalıcılığını destekler. Bu özellik, uygulamanızın veri katmanının çevrimdışı olarak şeffaf bir şekilde çalışmasını sağlar. Statik öğelerinizi önbelleğe almak için Service Worker'larla birlikte kullanıldığında PWA'nız çevrimdışı olarak tam işlevli çalışabilir. Tek bir kod satırıyla çevrimdışı veri kalıcılığını etkinleştirebilirsiniz:

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

Çevrimdışı yetkilendirme durumunu koruma

Firebase Authentication, oturum açma verilerinin yerel bir önbelleğini tutar. Bu sayede, daha önce oturum açmış bir kullanıcı çevrimdışı olsa bile kimliği doğrulanmış olarak kalabilir. Oturum açma durumu gözlemcisi normal şekilde çalışır ve kullanıcı çevrimdışı durumdayken uygulamayı yeniden yüklese bile tetiklenir:

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

Cloud Firestore ve Firebase Authentication ile çalışmaya başlamak için belgelerimizi inceleyin.

Kullanıcılarla etkileşim kurma

Kullanıcılarınız, uygulamanızda yeni özellikler yayınladığınızda bunu öğrenmek ister ve kullanıcı etkileşimini yüksek tutmak istersiniz. PWA'nızı, kullanıcılarınıza proaktif ve sorumlu bir şekilde ulaşacak şekilde ayarlayın.

Kullanıcılarınıza push bildirimleri gösterme

Firebase Cloud Messaging ile sunucunuzdaki alakalı bildirimleri kullanıcılarınızın cihazlarına gönderebilirsiniz. Bu hizmet, uygulama kapalıyken bile kullanıcılarınıza zamanında bildirimler göstermenize olanak tanır.

Kullanıcı yeniden etkileşimini otomatikleştirme

Cloud Functions for Firebase'i kullanarak, kullanıcılarınıza bulut etkinliklerine (ör. Cloud Firestore'e veri yazma veya kullanıcı hesabı silme) dayalı olarak yeniden etkileşim mesajları gönderin. Ayrıca, kullanıcı yeni bir takipçi kazandığında kullanıcıya push bildirimi de gönderebilirsiniz:

// 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);
    });