Merhaba arkadaşlar! Bugün sizlere Unity üzerinde Firebase kullanarak temel CRUD (Create, Read, Update, Delete) işlemlerini nasıl yapabileceğinizi anlatacağım. Firebase, projelerimize bulut tabanlı veri yönetimi ekleyerek oyunlarımızın daha dinamik ve kullanışlı hale gelmesini sağlıyor. Özellikle veritabanı işlemleri için Firebase oldukça pratik bir çözüm sunuyor. Hadi gelin, Firebase’i Unity’ye nasıl entegre ederiz ve veri tabanında CRUD işlemlerini nasıl gerçekleştiririz, adım adım inceleyelim.
Firebase Nedir ve Neden Kullanmalıyız?
Firebase, Google tarafından sunulan, oyun veya uygulama geliştirenlerin kullanabileceği bir platformdur. Gerçek zamanlı veritabanı, kimlik doğrulama, bulut depolama gibi birçok özellik sunar. Oyun projelerinde kullanıcı bilgilerini, skor tablolarını veya diğer verileri saklamak için Firebase’in kullanımı oldukça yaygındır.
Firebase’i Unity’e Entegre Etmek
Firebase’i Unity projemize entegre etmek için birkaç basit adım var. İlk olarak Firebase SDK’sını indirip, projeye ekleyerek başlayalım:
- Firebase SDK’sını indirin: Firebase SDK for Unity adresine giderek SDK’yı indirin.
- Firebase’i Unity’e ekleyin: İndirdiğiniz SDK’yı Unity’ye ekleyin. (FirebaseDatabase.unitypackage dosyasını Unity’ye sürükleyip bırakmanız yeterli.)
- Firebase Console’da proje oluşturun: Firebase Console üzerinden yeni bir proje oluşturun.
- GoogleService-Info.plist veya google-services.json dosyasını indirin ve Unity projenize ekleyin.
Firebase’i Unity projemize başarıyla entegre ettiğimize göre, şimdi CRUD işlemlerini uygulamaya başlayabiliriz!
1. Create (Oluşturma) İşlemi
Veritabanına yeni bir veri eklemek için, Firebase Database’ine bir referans oluşturup SetValueAsync
metodunu kullanıyoruz.
using Firebase;
using Firebase.Database;
using UnityEngine;
public class FirebaseManager : MonoBehaviour
{
DatabaseReference reference;
void Start()
{
reference = FirebaseDatabase.DefaultInstance.RootReference;
CreateData("kullaniciID_123", "John", "Doe");
}
void CreateData(string userId, string firstName, string lastName)
{
User user = new User(firstName, lastName);
string json = JsonUtility.ToJson(user);
reference.Child("users").Child(userId).SetRawJsonValueAsync(json).ContinueWith(task => {
if (task.IsCompleted)
{
Debug.Log("Veri başarıyla eklendi.");
}
else
{
Debug.LogError("Veri eklenirken hata oluştu: " + task.Exception);
}
});
}
}
public class User
{
public string firstName;
public string lastName;
public User(string firstName, string lastName)
{
this.firstName = firstName;
this.lastName = lastName;
}
}
Bu örnekte, CreateData
fonksiyonu ile Firebase veritabanına yeni bir kullanıcı ekliyoruz.
2. Read (Okuma) İşlemi
Firebase’de saklanan verileri okumak için GetValueAsync
metodunu kullanıyoruz. Bu metodla veritabanındaki verileri çekebiliriz.
void ReadData(string userId)
{
FirebaseDatabase.DefaultInstance
.GetReference("users")
.Child(userId)
.GetValueAsync().ContinueWith(task => {
if (task.IsCompleted)
{
DataSnapshot snapshot = task.Result;
Debug.Log("Kullanıcı Adı: " + snapshot.Child("firstName").Value.ToString());
Debug.Log("Kullanıcı Soyadı: " + snapshot.Child("lastName").Value.ToString());
}
else
{
Debug.LogError("Veri okunurken hata oluştu: " + task.Exception);
}
});
}
Bu kodda, ReadData
fonksiyonuyla belirli bir kullanıcının bilgilerini Firebase veritabanından okuyup Unity konsoluna yazdırıyoruz.
3. Update (Güncelleme) İşlemi
Veritabanında mevcut bir veriyi güncellemek de oldukça basit. UpdateChildrenAsync
metodunu kullanarak veriyi güncelleyebiliriz.
void UpdateData(string userId, string newFirstName)
{
Dictionary updates = new Dictionary();
updates["firstName"] = newFirstName;
reference.Child("users").Child(userId).UpdateChildrenAsync(updates).ContinueWith(task => {
if (task.IsCompleted)
{
Debug.Log("Veri başarıyla güncellendi.");
}
else
{
Debug.LogError("Veri güncellenirken hata oluştu: " + task.Exception);
}
});
}
Bu örnekte, UpdateData
fonksiyonu ile bir kullanıcının adını güncelleyebiliyoruz.
4. Delete (Silme) İşlemi
Firebase’de saklanan verileri silmek için RemoveValueAsync
metodunu kullanıyoruz. Bir veri silindiğinde, veritabanından tamamen kaldırılır.
void DeleteData(string userId)
{
reference.Child("users").Child(userId).RemoveValueAsync().ContinueWith(task => {
if (task.IsCompleted)
{
Debug.Log("Veri başarıyla silindi.");
}
else
{
Debug.LogError("Veri silinirken hata oluştu: " + task.Exception);
}
});
}
DeleteData
fonksiyonuyla, belirli bir kullanıcıyı Firebase veritabanından siliyoruz.
Firebase’de Kimlik Doğrulama
Firebase’in bir diğer güçlü yanı, kullanıcıları kimlik doğrulama ile giriş yaptırabilmemizdir. Firebase’in sunduğu kimlik doğrulama işlemleriyle kullanıcı girişi yapabilir, verilerini güvenli şekilde saklayabiliriz.
Bonus: Firebase İle Gerçek Zamanlı Veri Takibi
Firebase’in en güçlü özelliklerinden biri, veritabanındaki değişiklikleri gerçek zamanlı olarak takip edebilmemizdir. Veriler güncellendiğinde ya da değiştiğinde otomatik olarak bir tetikleyici (listener) çalıştırabiliriz.
void Start()
{
reference.Child("users").Child("kullaniciID_123").ValueChanged += HandleValueChanged;
}
void HandleValueChanged(object sender, ValueChangedEventArgs e)
{
if (e.Snapshot.Exists)
{
Debug.Log("Veri güncellendi: " + e.Snapshot.Value.ToString());
}
}
Bu örnekle, belirli bir kullanıcıya ait veri her güncellendiğinde bu değişiklikleri gerçek zamanlı olarak dinleyip konsola yazdırabiliyoruz.
Sonuç
Firebase, Unity projelerinde kullanıcı yönetimi, veri saklama ve gerçek zamanlı güncellemeler için mükemmel bir çözüm sunuyor. Temel CRUD işlemleriyle veri tabanında istediğiniz değişiklikleri yapabilir, Firebase’in güçlü özelliklerinden faydalanarak oyunlarınızı bir üst seviyeye taşıyabilirsiniz. Bir sonraki yazıda, Firebase kimlik doğrulama işlemlerine ve daha gelişmiş kullanım örneklerine değineceğim.
Mutlu kodlamalar! 🎮