logo
eng-flag

Firebase Notları ve İpuçları

İçindekiler

  1. Firebase Kimlik Doğrulama
  2. Firebase Gerçek Zamanlı Veritabanı
  3. Cloud Firestore
  4. Firebase Bulut Depolama
  5. Firebase Bulut Fonksiyonları
  6. Firebase Barındırma
  7. Firebase Bulut Mesajlaşma
  8. Firebase Analitik
  9. Firebase Performans İzleme
  10. Firebase Uzaktan Yapılandırma

Firebase Kimlik Doğrulama

Firebase Kimlik Doğrulamayı Başlatma

const auth = firebase.auth();

E-posta ve Şifre ile Kayıt Olma

auth.createUserWithEmailAndPassword(email, password)
  .then((userCredential) => {
    // Giriş yapıldı
    const user = userCredential.user;
  })
  .catch((error) => {
    const errorCode = error.code;
    const errorMessage = error.message;
  });

E-posta ve Şifre ile Giriş Yapma

auth.signInWithEmailAndPassword(email, password)
  .then((userCredential) => {
    // Giriş yapıldı
    const user = userCredential.user;
  })
  .catch((error) => {
    const errorCode = error.code;
    const errorMessage = error.message;
  });

Çıkış Yapma

auth.signOut().then(() => {
  // Çıkış başarılı.
}).catch((error) => {
  // Bir hata oluştu.
});

Mevcut Kullanıcıyı Alma

const user = auth.currentUser;

Kimlik Doğrulama Durum Değişikliklerini Dinleme

auth.onAuthStateChanged((user) => {
  if (user) {
    // Kullanıcı giriş yapmış
  } else {
    // Kullanıcı çıkış yapmış
  }
});

Firebase Gerçek Zamanlı Veritabanı

Gerçek Zamanlı Veritabanını Başlatma

const database = firebase.database();

Veri Yazma

database.ref('users/' + userId).set({
  username: name,
  email: email,
  profile_picture : imageUrl
});

Veriyi Bir Kez Okuma

database.ref('/users/' + userId).once('value').then((snapshot) => {
  const username = (snapshot.val() && snapshot.val().username) || 'Anonim';
});

Değişiklikleri Dinleme

database.ref('/users/' + userId).on('value', (snapshot) => {
  const data = snapshot.val();
  updateStarCount(postElement, data);
});

Veri Güncelleme

database.ref('users/' + userId).update({
  username: newUsername
});

Veri Silme

database.ref('users/' + userId).remove();

Cloud Firestore

Cloud Firestore'u Başlatma

const db = firebase.firestore();

Belge Ekleme

db.collection("users").add({
    first: "Ada",
    last: "Lovelace",
    born: 1815
})
.then((docRef) => {
    console.log("Belge şu ID ile yazıldı: ", docRef.id);
})
.catch((error) => {
    console.error("Belge eklenirken hata oluştu: ", error);
});

Belge Ayarlama

db.collection("cities").doc("LA").set({
    name: "Los Angeles",
    state: "CA",
    country: "USA"
});

Belge Alma

db.collection("cities").doc("LA")
    .get().then((doc) => {
        if (doc.exists) {
            console.log("Belge verisi:", doc.data());
        } else {
            console.log("Böyle bir belge yok!");
        }
    }).catch((error) => {
        console.log("Belge alınırken hata oluştu:", error);
    });

Gerçek Zamanlı Güncellemeler

db.collection("cities").doc("LA")
    .onSnapshot((doc) => {
        console.log("Güncel veri: ", doc.data());
    });

Belgeleri Sorgulama

db.collection("cities").where("capital", "==", true)
    .get()
    .then((querySnapshot) => {
        querySnapshot.forEach((doc) => {
            console.log(doc.id, " => ", doc.data());
        });
    });

Firebase Bulut Depolama

Bulut Depolamayı Başlatma

const storage = firebase.storage();

Dosya Yükleme

const ref = storage.ref('images/mountains.jpg');
const file = ... // Dosyayı almak için Blob veya File API kullanın

ref.put(file).then((snapshot) => {
  console.log('Dosya yüklendi!');
});

Dosya URL'sini İndirme

storage.ref('images/mountains.jpg').getDownloadURL()
  .then((url) => {
    // URL'yi "indirmek" için bir <img> etiketine yerleştirin
  });

Dosya Silme

const ref = storage.ref('images/mountains.jpg');
ref.delete().then(() => {
  // Dosya başarıyla silindi
}).catch((error) => {
  // Bir hata oluştu!
});

Firebase Bulut Fonksiyonları

Bulut Fonksiyonlarını Başlatma (Firebase projenizde)

const functions = require('firebase-functions');

HTTP Fonksiyonu

exports.helloWorld = functions.https.onRequest((request, response) => {
  response.send("Firebase'den Merhaba!");
});

Firestore Tetikleyici

exports.createUser = functions.firestore
    .document('users/{userId}')
    .onCreate((snap, context) => {
      // Belgeyi temsil eden bir nesne alın
      const newValue = snap.data();
      
      // Herhangi bir JS özelliği gibi belirli bir alana erişin
      const name = newValue.name;

      // İstenen işlemleri gerçekleştirin ...
    });

Firebase Barındırma

Firebase Barındırmayı Başlatma

firebase init hosting

Firebase Barındırmaya Dağıtım

firebase deploy --only hosting

Firebase Bulut Mesajlaşma

Bulut Mesajlaşmayı Başlatma

const messaging = firebase.messaging();

İzin İsteme

messaging.requestPermission()
.then(() => {
  console.log('Bildirim izni verildi.');
  return messaging.getToken();
})
.then((token) => {
  console.log('Token:', token);
})
.catch((err) => {
  console.log('Bildirim izni alınamadı.', err);
});

Gelen Mesajları İşleme

messaging.onMessage((payload) => {
  console.log('Mesaj alındı. ', payload);
});

Firebase Analitik

Analitiği Başlatma

const analytics = firebase.analytics();

Olay Kaydetme

analytics.logEvent('select_content', {
  content_type: 'image',
  content_id: 'P12453'
});

Kullanıcı Özelliklerini Ayarlama

analytics.setUserProperties({favorite_food: 'pizza'});

Firebase Performans İzleme

Performans İzlemeyi Başlatma

const perf = firebase.performance();

İzleme Başlatma

const trace = perf.trace('test_trace');
trace.start();

// Zaman alan bazı işler yapın...

trace.stop();

Firebase Uzaktan Yapılandırma

Uzaktan Yapılandırmayı Başlatma

const remoteConfig = firebase.remoteConfig();

Değerleri Getirme ve Etkinleştirme

remoteConfig.fetchAndActivate()
  .then(() => {
    const welcomeMessage = remoteConfig.getValue('welcome_message');
    console.log(welcomeMessage.asString());
  })
  .catch((err) => {
    console.error('Uzaktan yapılandırma getirilirken hata oluştu.', err);
  });

2024 © Tüm hakları saklıdır - buraxta.com