Firebase veritabanına veri eklemek için Async/Await ve Promises yöntemlerini kullanarak nasıl daha hızlı ve kolay işlem yapabileceğinizi keşfedin! Bu yazıda Firebase ile veri ekleme işlemi yaparak veritabanınızı daha verimli hale getirin

Firebase kullanarak verilerinizi veritabanına eklemek veya okumak için, JavaScript'te asenkron fonksiyonları kullanmanız gerekecektir. Asenkron fonksiyonlar, web uygulamanızın normal çalışmasını engellemeden arka planda işlem yapabilmenizi sağlar. Bu amaçla, Promises ve Async/Await kullanarak Firebase veritabanına veri ekleyebilirsiniz.
Promises, birçok donanım veya sistem arasında veri aktarımı gibi yakın zamanda tamamlanacağı beklenen görevleri yönetmenize olanak tanır. Firebase'de Promises kullanmak için, veri yazma ve okuma işlemlerinin çözücü (then) veya reddedici (catch) fonksiyonlarıyla yönetmeniz gerekir. Async/Wait ise Promises'ten farklı olarak, kod bloklarınızı blok etmeden arka planda işlemlerin tamamlanmasını beklemeyi sağlar.
Firebase veritabanına veri eklemek için, Async/Await kullanarak push() veya set() metodlarını kullanabilirsiniz. Push() veri kümesini genişletmek için yeni verileri eklerken, set() ise tüm veri kümesini baştan oluşturur ve yeni verileri ekler. Veri okuma işlemi için ise on() ve once() metotlarını kullanabilirsiniz. On() metodu, belirli bir veri kümesindeki değişikliklerde anlık olarak sizi haberdar ederken, once() metodunu kullanarak sadece belirli bir kez veri okuyabilirsiniz.
Firebase veritabanına veri eklemek veya okumak için önce Firebase hesabınızdan bir proje oluşturmanız gerekir. Bu proje için gerekli olan bilgileri sizinle paylaşacağız ve Firebase SDK'yı projenize dahil etmeniz gerekecektir.
Async/Await nedir?
Async/Await, JavaScript'te asenkron fonksiyonlar yazmak için kullanılan bir yapıdır. Bu yapı, asenkron fonksiyonları çağıran ve sonuçlarını bekleyen fonksiyonları bloke etmeden çalıştırmak için kullanılır. Async/Await, daha önce kullanılan promises yapılarının daha okunaklı, kısa ve basit bir şekilde yazılmasını sağlar. Bu yapı, özellikle Node.js ve React Native gibi platformlarda kullanışlıdır. Async/Await yapısı, async anahtar kelimesiyle başlar ve await anahtar kelimesiyle sona erer. Async fonksiyon şablonu oluşturulduktan sonra, aynı bekleyen işlemler promises yapısında olduğu gibi kullanılabilir.
Promises nedir?
Promises nedir?
JavaScript, asenkron fonksiyonlar yazarken işlemleri yönetmek için Promises kullanır. Promises, bir işlemi başlattıktan sonra onu tamamladığında yapılacak olan bir eylem için bir framework sağlar. Promises, işlemin yapılmasını beklemek için zaman harcamak yerine, tamamlandığında çalışacak fonksiyonları belirlemenize olanak tanır. Bu, kodun okunmasını ve yönetilmesini kolaylaştıran bir yapıdır. Bir Promises objesi, kullanıcıların asenkron fonksiyonların işlemlerini yönetmelerini sağlar.
Promise objeleri, başlangıç işleminin tamamlanmasını bekleyen üç duruma sahiptir: "Başarısız", "Başarılı" ve "İşlem tamamlandı". Kullanıcılar, bu üç durumda yapılacak olan farklı eylemleri belirlemek için .then () ve .catch () yöntemlerini kullanabilirler.
Promises aynı zamanda zincirleme bağlantılar oluşturmak için de kullanılabilir. Bu, önceki bir işlemin tamamlanmasını bekleyen yeni bir Promises'nin oluşturulmasını ve eylemlerin birbirine zincirlenmesini sağlar. Bu, kodun okunmasını ve yönetilmesini kolaylaştıran bir başka yapıdır.
Promises Nasıl Kullanılır?
JavaScript dilinde asenkron fonksiyonlar kullanılarak birçok işlem yapılabilir. Ancak bu fonksiyonlar arasında karar vermek bazen zor olabilir. İşte bu noktada Promises kullanıcıların asenkron fonksiyonların işlemlerini yönetmelerine olanak tanır.
Bir Promise oluşturmak için new Promise() kullanılabilir. Oluşturulan Promise objesi aldığımız verileri çözülmeden önce tutar. Bununla birlikte, verilerin çözülebilir hale gelmesi için, .then() metodu kullanılarak işlem yapılabilir. İşlem sırasında beklenmeyen bir hata oluşursa, .catch() metodu kullanılarak hata yönetimi yapılabilir.
Metod | Açıklaması |
---|---|
Promise.all() | Bir dizi isteğin tamamlanmasının ardından sonuçları toplar. |
Promise.race() | Bir dizi isteğin tamamlanmasını bekler ve ilk sonucu döndürür. |
Promise.allSettled() | Bir dizi isteğin tamamlanmasını bekler ve tüm sonuçlarını resolve veya reject etmeden önce döndürür. |
Promise objesi aldığımız verileri işlemek için çözücü (then) ve reddedici (catch) fonksiyonları kullanmak mümkündür.
Promise Objesi Oluşturmak
Promises, JavaScript'te asenkron işlemleri daha yönetilebilir ve okunaklı hale getirmek için kullanılan bir yapıdır. Bu yapı sayesinde uzun süren işlemler arka planda çalışır ve işlem sonucu daha sonra kullanılabilir hale gelir. Bir promise objesi oluşturmak için `new Promise()` kullanılabilir. Bu yapı, fonksiyonların işlemi tamamlanana kadar bloke olmasını engeller ve arka planda işlem yapmasına olanak sağlar. Promise objesi ile `then()` ve `catch()` fonksiyonları kullanılarak yapılan işlemler sonrasında veriler çözücü veya reddedici fonksiyonlarına gönderilir. Yani, aldığımız verileri işlemek için çözücü (then) veya reddedici (catch) fonksiyonları kullanmak mümkündür.
then() ve catch() Kullanımı
Promise objesi, verilerimizi işlemek için çözücü (then) ve reddedici (catch) fonksiyonlarını kullanmamızı sağlar. Çözücü fonksiyonu, bir promise nesnesi çözülmüşse devreye girer ve işlem sonucunu kullanmamıza olanak tanır. Reddedici fonksiyonu, bir promise nesnesi reddedilmişse devreye girer ve hata mesajını kullanıcılara bildirmemizi sağlar.
Çözücü fonksiyonu ile birlikte kullanılan then() metodunda, promise objesi çözülmüşse işlemi gerçekleştirecek olan bir fonksiyon parametre olarak kullanılır. Bu sayede, verilerimizi başarılı bir şekilde işleyebiliriz. Reddedici fonksiyonu ile birlikte kullanılan catch() metodunda ise, promise objesi reddedildiğinde hata mesajlarını yakalayabiliriz.
Async/Await Kullanımı
Async/Await, JavaScript'te asenkron fonksiyonları yazmak için kullanılan bir yapıdır. Bu yapı sayesinde, program asenkron bir işlem yaparken, diğer işlemleri de bekletmeden devam edebilirsiniz. Yani, programın devam etmesi, asenkron işlem tamamlanmadan önce de mümkündür. Bu da, programın performansını arttırır.
Async/Await, Promises yapılarından daha kolay bir kullanıma sahiptir. Fonksiyonların dönüş değerlerini beklemek yerine, Async/Await yapıları sayesinde fonksiyonların tamamlanması beklenir. Fonksiyon tamamlandıktan sonra, veriler işlenir.
Bu yapı, Firebase veritabanına veri yazarken de kullanılabilir. Firebase, Görsel Veri Yöneticisi tarafından sağlanan bir platform bağımsız arka uç hizmetidir. Asenkron işlemler, Firebase veritabanı işlemlerinde oldukça yaygındır. Async/Await yapıları, Firebase veritabanı işlemlerini bloke etmeden gerçekleştirebilir ve veri işleme işlemini bekletmeden yapabilirsiniz.
await anahtar kelimesi, Async fonksiyonunun tamamlanmasını beklemek için kullanılır. .try/.catch blokları kullanılarak, Async/Await hatalarını kolayca yakalayabilirsiniz. Async/Await kullanırken, blokların doğru kullanımı ve hata kontrolünün doğru şekilde yapılması önemlidir.
await Kullanımı
Async fonksiyonlar çalışırken diğer işlemler çalışmaya devam eder. Bu nedenle async fonksiyonunun işlemi tamamlanmadan sonuç beklenmeden diğer işlemlere geçilir. await anahtar kelimesi, Async fonksiyonunun tamamlanmasını beklemek için kullanılır. Bu şekilde, async fonksiyon sonuç vermeden önce diğer işlemlere geçilmeyecektir.
await kullanımı örneği
Ad | Ülke |
---|---|
Özge | Türkiye |
John | ABD |
Aşağıdaki kod örneği, await kullanımını göstermektedir. await anahtar kelimesi, async kelimesi ile birlikte kullanılır ve kelimenin beklediği işlem Async fonksiyonundan sonuç bekler. Aşağıdaki örnekte, bir .json dosyasından veri çekimi yapılıyor. Verinin işlemi tamamlanana kadar await anahtar kelimesi, sonucu çözümlenmek için bekliyor.
async function veriGetir() { const response = await fetch('veriler.json'); const veriler = await response.json(); return veriler;}
Bu örnekte Async fonksiyonunun sonucu çözümlenene kadar işlem yapılmaz. Sonuç çözümlendiğinde ise, fonksiyon sonucu geri döndürür ve sonuç kullanılmaya hazır hale gelir.
Error Handling
Async/Await yapısı ile veritabanı işlemleri gerçekleştirirken, hata durumlarına karşı .try/.catch blokları kullanılarak error handling yapılabilir. Hata oluştuğunda kod çalışması durdurulmadan .catch bloğuna atlanarak, hata yönetimi sağlanabilir.
Bir örnekle açıklamak gerekirse:
Örnek Kod |
---|
async function veriEkle(veri) { try { const response = await firebase.database().ref("veriler").push(veri); console.log("Veri başarıyla eklendi!"); } catch (error) { console.error("Veri eklenirken bir hata oluştu:", error); }} |
Burada, veriEkle() fonksiyonunda veritabanına veri eklerken hata oluşma durumunda .catch bloğu çalışacaktır. Hatanın nedeni console.log ile yazdırılarak hatanın nereden kaynaklandığı bulunabilir.
Async/Await kullanılarak hata yönetimi sağlayarak, kodun daha güvenli ve sağlam bir şekilde çalışması için gerekli adımlar atılmış olur.
Firebase Nedir?
Firebase Nedir?
Firebase, Google tarafından sunulan platform bağımsız bir arka uç bilişim hizmetidir. Bulut tabanlı bir platform olan Firebase, uygulama geliştiricilerine ölçeklenebilir bir arka uç sunucusu sağlar. Ayrıca, Firebase, kullanıcılara birçok özellik sunar ve bu özellikler birçok geliştirme sürecine yardımcı olur.
Firebase özellikleri şunları içerir:
- Authentication: Firebase, kullanıcılara kimlik doğrulama çözümleri sunar. Kullanıcıların e-posta adresleri, Google hesapları, Facebook hesapları vb. kullanarak doğrulanmalarını sağlayabilirsiniz.
- Realtime Database: Firebase veritabanı, gerçek zamanlı olarak senkronize edilir. Bu nedenle, veri değiştiğinde kullanıcılara anında bildirim gönderilebilir.
- Cloud Firestore: Firebase'in yeni nesil NoSQL veritabanı hizmetidir. Cloud Firestore, gerçek zamanlı olarak senkronize edilen veri yapılarını kullanır.
- Hosting: Firebase, uygulamalarınızı hızlı, güvenli ve ölçeklenebilir şekilde dağıtmak için bir hosting hizmeti sunar.
- Storage: Firebase, kullanıcılara yüksek kaliteli medya depolama ve erişim imkanı sunar.
- AdMob: Firebase, kullanıcılara mobil uygulamalarda reklam göstermek için bir reklam platformu sunar.
Genel olarak, Firebase, uygulama geliştiricilerine ölçeklenebilir ve güvenli bir altyapı sunar. Aynı zamanda, isteğe bağlı olarak kullanabileceğiniz pek çok farklı özellik sunar. Firebase, uygulama geliştirme sürecini hızlandırmak ve geliştiricilerin odaklanmasını istedikleri diğer alana yönelmesine olanak tanır.
Firebase Kullanımı
Firebase, Google tarafından sunulan platform bağımsız bir arka uç bilişim hizmetidir. Firebase veri okuma ve yazma işlemleri yaparken Promises ve Async/Await fonksiyonları kullanmak mümkündür. Bu sayede veriler daha hızlı ve stabil şekilde işlenebilir. Firebase verilerin yazımını gerçekleştirmek için push() ve set() metodları kullanılabilir. Ancak, bu işlemleri gerçekleştirirken Async/Await veya Promise yapısını uygulamak oldukça yararlıdır. Firebase'de verilerin okunması için on() ve once() metodları kullanılır. Veriyi okurken de Async/Await veya Promise yapısını kullanmak mümkündür.
Veri Yazımı(Write)
Veri eklemek için Firebase'de push() ve set() metotları kullanılabilir. push() metodu, yeni bir veri parçası eklemek için kullanılır ve verinin benzersiz bir kimliği vardır. set() metodu, belirli bir veri parçasını güncellemek veya eklemek için kullanılır. Genellikle set() metodunda belirtilen veri, JSON formatında kullanılır. Veri eklerken, bir obje olarak push() metodunun içinde veya bir JSON nesnesi olarak set() metodunun içinde yazılabilir. Örnek olarak, `databaseRef.push({'isim':'John', 'yaş':'25'})` şeklinde veri eklendiğinde, Firebase yeni bir eşsiz kimlik verisi ile nesnenin kaydedilen bir kopyasını saklar. Push() metodunun bir diğer özelliği de aynı anahtar değerine sahip nesneleri tutabilmesidir. Set() metodu ise, belirtilen yola JSON nesnesi verileri yazılmasına izin verir. Örnek olarak, `databaseRef.ref('path/to/data').set({'isim':'Jane', 'yaş':'30'})` Ifadesi, 'path/to/data' yolunda nesne verilerinin güncellenmesini sağlar. Her iki metot da Async fonksiyonları ile birlikte kullanabilir ve .then() ve .catch() kullanarak işlem sırasında hataları ele alabilirsiniz.
Veri Okuma(Read)
Firebase, verilerin okunması işleminde iki ana metod sağlar; bu metodlar `.on()` ve `.once()`'tir. `.on()` metodu veritabanındaki belirli bir yerdeki tüm verileri takip etmek için kullanılır. Bu işlev çağrılırken veriler okunur ve sonrasında ilgili yerdeki herhangi bir veri değiştiğinde çalışır. Yani, veritabanındaki verilerde herhangi bir değişiklik olduğunda işlev tekrar çalıştırılacaktır.
Öte yandan, `.once()` metodu veritabanından yalnızca bir kez veri okumak için kullanılır. Bu metodu kullandığınızda, veritabanındaki verilerin güncelleştirilmesi başka bir işlev çağrısı gerektirir.
Metod Adı | Açıklama |
---|---|
.on() | Veri tabanındaki bir konumda meydana gelen herhangi bir değişikliği işlemek için kullanılır. |
.once() | Belirtilen konumdan bir kez veri okumak için kullanılır. |
Veri okuma işlemi için örnek bir uygulama oluşturmak için, bir veri tabanı referansı ve bir olay işleyicisi oluşturmanız gerekir. Ayrıca, verilerin yerleştirileceği bir HTML elementi de gereklidir.
var database = firebase.database().ref('/messages');var messageList = document.getElementById('messages');database.on('value', function(snapshot) { messageList.innerHTML = ''; snapshot.forEach(function(childSnapshot) { var messageData = childSnapshot.val(); var messageItem = document.createElement('li'); messageItem.innerText = messageData.text; messageList.appendChild(messageItem); });});
Bu örnek kod, veriler /.messages konumundan okunacak ve HTML elementi `
- ` kullanarak mesajlar gösterilecektir. `on()` metodunu kullanarak, herhangi bir değişiklikte veritabanındaki mesajlar otomatik olarak güncellenecektir.
Başlarken
Firebase, web uygulama geliştiricilerine hizmet veren çok kullanışlı bir platformdur. Firebase veritabanında veri okuma ve yazma işlemleri yapmak için ilk olarak Firebase hesabından bir proje oluşturmak gerekmektedir. Firebase hesabına kayıt olduktan sonra, Firebase Console sayfasına giderek "yeni proje oluştur" seçeneğine tıklayabilirsiniz.
Proje adını girerek oluşturma işlemini başlattıktan sonra, Firebase Console sayfasında proje ile ilişkili özellikleri yönetebilirsiniz. "Authentication" özelliğini etkinleştirerek kullanıcı doğrulama işlemlerini gerçekleştirebilirsiniz. "Database" özelliğine tıklayarak Firebase veritabanını kullanabilirsiniz. Firebase Firestore veya Realtime Database seçeneklerinden birini seçerek veri tabanı oluşturabilirsiniz.