Projemizde kullanmak için veritabanı olarak Google ın Firebase Realtime Database ini seçtik. Yapmak istediğimiz ESP8266 dan Firebase e gönderilen verileri C# ile almak.
Yapacağımız C# Firebase Realtime Database Veri Çekme uygulamasını gerçekleştirme adımlarını adım adım açıklamaya çalışacağız.
- https://console.firebase.google.com/ adresinden gmail hesabımız ile oturum açıyoruz.
- Firebase paneline girdikten sonra Add Project butonuna tıklıyoruz.
Firebase ekranında yapmamız gerekenler tamamlandı. Şimdi sıra C# tarafında. Visual Studio yu açıyoruz ve Windows Form App (.NET Framework) projesi oluşturuyoruz. Projemizin ismine "CSharp Firebase Realtime Database Veri Cekme" ismini verdik.
Formumuzun üzerine 2 adet label ve 2 adet textBox ve 1 adet buton yerleştirdik ve aşağıdaki formu oluşturduk.
buton1 e çift tıklayarak kodlama alanımıza geçtik.
buton1 e çift tıklayarak kodlama alanımıza geçtik.
Şimdi projemize FireSharp paketini yükliyeceğiz. Bunun için Manage NuGet Packages menüsüne giriyoruz.
Browse menüsünden FireSharp ı bulup Install butonuna basıyoruz.
Package Manager Format ekranında OK a tıklayarak devam ediyoruz.
Lisans Acceptance ekranından I Accept diyerek lisans şartlarını kabul ediyoruz.
C# Projemize Data.cs isminde bir sınıf ekliyoruz ve Firebase de tanımladığımız Name alanlarını buraya da tanımlıyoruz.
Proje tamamlandığında Form.cs dosyamız şu şekilde olacaktır.
Projemiz tamamlanmıştır. Kodlarımızı çalıştırdığımızda ekranımızda Data 1 ve Data 2 alanları Firebase Realtime Database üzerinden çekilerek Form üzerinde gösterilmiştir.
Bu proje ile kazanımlarımız şu şekilde sıralanabilir.
- Firebase Google ın aylık 10GB a kadar ücretsiz kullanılan bir servisidir. MQTT uygulamaları kadar hızlı olmasada bizim yaptığımız 100ms testlerinde başarılı olmuştur. Firebase sunucusuna gönderilen her bir bayt ve çekilen her bir byte için 10GB sınırı aşılmadığı sürece ücretsizdir. Bu limit basit uygulamalar için yetrli ama kompleks uygulamalar için yetersizdir. Büyük veri iletimlerine ihtiyaç duyduğunuzda kendi sunucunuzu kullanmak ve daha uygun planlı servisler bulmak gerekebilir.
- Fabrika içerisindeki bir cihazdan sıcaklık verisini bu projede anlatılan yöntem ile kolaylıkla görebilirsiniz. Firebase in Google Android Play marketinde resmi bir uygulaması şu an için yok ama chrome tarayıcı ile kullanımı gayet rahat.
- Bu projemiz C# Firebase örneğimiz idi bunu Android (Java, Kotlin), iOS, Python, Go, NodeJS ve Web projeleri için de yapmak mümkündür. Firebase bütün bu diller için Firebase Admin SDK sını geliştirmiştir. Dolayısıyla Firebase kullanmak projelerinizi geliştirirken size hız katar. Sonra projenin büyüdüğü ve yetmediği durumlarda kendi sunucunuza geçebilirsiniz.
- Firebase hususunda dökümantasyon oldukça fazladır. https://firebase.google.com/docs adresinden aradığınız sorulara yanıt bulmak kolaydır.
- C# projesi ile uzaktaki bir cihaza ait veriler sağlıklı bir şekilde görüşmüştür. Farklı senaryolar ile proje büyütülebilir. Get in yanında Set işlemi de yapılarak veri gönderme işlemi yapılabilir. Set kısmı başka bir blog da yayınlamaya çalışacağız.
Projenin kaynak kodları Github üzerinde "CSharp Firebase Realtime Veri Cekme" ismi ile yayınlanacaktır.
İyi çalışmalar...