Forum: Diğer Konular RSS
C++ / Qt Firebase Üçüncü Parti Bileşeninin Kullanımı
İbrahim #1
Üye Eki 2015 tarihinden beri · 156 mesaj
Grup üyelikleri: Üyeler
Profili göster · Bu konuya bağlantı
Konu adı: C++ / Qt Firebase Üçüncü Parti Bileşeninin Kullanımı
Selamün Aleyküm;
Ben Qt kütüphanesi kullanılarak C++ ile yazılmış şu bileşeni Firebase (https://www.firebase.com/) için kullanmak istiyorum: https://github.com/clkasd/qt-firebaseapi/. Lakin bu bileşenin dökümanını açıkcası anlamadım.  firebase->getValue() diyerek değer çekmiş ama bu üye işlev void dönüş tipine sahip, yani nasıl veriyi çekiyor? Yani dönüş tipi QString, string vs. olmalı değil miydi? void dönüş tipi olunca nasıl tutacağım veriyi? Mesela şöyle bir json var Firebase'de:
{
  "id-0": {
    "title": "AAA",
    "name": "name_a",
    "content": "XXXXXXXXXX"
  }
 
  "id-1": {
    "title": "BBB",
    "name": "name_b",
    "content": "YYYYYYYYYY"
  }
}
Buradan id-1 olanın tüm değerlerini çek demek için ne yapmam gerekiyor bu bileşende? Sonra şöyle bir bölüm var:
connect(firebase,SIGNAL(eventResponseReady(QString)),this,SLOT(onResponseReady(QString)));
Burada bunu yapmanın amacı nedir? Ben REST API'yi okudum biraz ve cURL ile javascript kullanarak yazmışlar (https://www.firebase.com/docs/rest/quickstart.html), ben orada bunu karşılayan bir şey göremedim. Bunun kullanım mantığı nedir? Kısaca bu bileşen Firebase ile veri alışverişini nasıl yapıyor? Anlatabilir misiniz? Teşekkürler!
acehreli (Moderatör) #2
Kullanıcı başlığı: Ali Çehreli
Üye Haz 2009 tarihinden beri · 4527 mesaj
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Firebase ve Qt bilmeden yazıyorum.

getValue() manager->get(request); yapıyor:

  https://github.com/clkasd/qt-firebaseapi/blob/master/fireb…

manager'ın türü QNetworkAccessManager imiş:

  https://github.com/clkasd/qt-firebaseapi/blob/master/fireb…

QNetworkAccessManager asynchronous olarak işliyormuş. Yani, yanıtını hemen vermiyormuş; biz daha sonra QNetworkReply yoluyla sorguluyormuşuz.

Salt İngilizcesine bakarak replyFinished(QNetworkReply*) ifadesini "QNetworkReply sonuçlandığında" olarak uyduruyorum. O da herhalde şu işlevdir:

  https://github.com/clkasd/qt-firebaseapi/blob/master/fireb…

Özetle, yanıtlar daha sonradan replyFinished() çağrılarak bildiriliyor.

Ali
erdem (Moderatör) #3
Üye Tem 2009 tarihinden beri · 981 mesaj · Konum: Eskişehir
Grup üyelikleri: Genel Moderatörler, Üyeler
Profili göster · Bu konuya bağlantı
Örnek olarak QT'de sinyal ve slot diye bir kavram var.

    connect(cikisDugmesi_, SIGNAL(clicked()), this, SLOT(cikis()));

Örneğin burada tıklandığında, tıklama sinyali alındığında cikis() işlevini çağır diyor. Bu cikis işlevinde ne olacağını biz yazıyoruz.

https://github.com/clkasd/qt-firebaseapi/blob/master/actio…

Buradaki örnekte de

    connect(firebase,SIGNAL(eventDataChanged(DataSnapshot*)),this,SLOT(onDataChanged(DataSnapshot*)));

veri değiştiğinde onDataChanged isimli işlevi çağır diyor.

Demek istediğim Qt olayları kendisi takip ediyor. Örneğin fare tıklandı bu olay gerçekleştiğinde ne yapmasını istediğimiz SLOT ekinden sonra gelen işlevle biz kodluyoruz.
Doğrulama Kodu: VeriCode Lütfen resimde gördüğünüz doğrulama kodunu girin:
İfadeler: :-) ;-) :-D :-p :blush: :cool: :rolleyes: :huh: :-/ <_< :-( :'( :#: :scared: 8-( :nuts: :-O
Özel Karakterler:
Bağlı değilsiniz. · Şifremi unuttum · ÜYELİK
This board is powered by the Unclassified NewsBoard software, 20100516-dev, © 2003-10 by Yves Goergen
Şu an: 2017-11-21, 19:32:35 (UTC -08:00)