Soru & Cevap

appy builde firebase tag silme ...

11.04.2019 - 09:16

selamlar öncelikle

uygulamnın giriş sayfasında 8 adet text box var.bu textboxlar kullanıcını ve cihazın bilgilerini (örn:

textbox1=telno 0532

textbox2=şifre

texbox3=cihazserino ...... böyle devam ediyor

ve bu bilgileri fire base device ana taginin altına

bir child tag açarak (bu kullanıcının telefon nosu)

kaydediyor

telnosu child taginin altınada childreen tagler olarak digerleri kaydediliyor

örnek

https://userdeviceinfo-bf802.firebaseio.com/ databaseine

 +device (ana taginin altına)

      +0532 (child tag)

          cihazserino:"2356325"

          şifre:"68484984"

          modelname:"samsung" ..........

diye devam ediyor

soru1: butona basıldığında  child tagini (+532) ve alt bilgilerini (model no,şifre,serino) nasıl silerim

soru2:bütün kullanıcıların bilgilerini her bir kullanıcı için 1 satıra dolacak şekilde listview de nasıl gösteririm

soru3: örnek yeni kullanıcı bilgilerini database e gonderdiği sırada mesela seri noları nasıl karşılaaştırabilirim

soru3 için şöyle soyleyeyim diyelimki 1213 seri nolu bir cihaz bilgisi database de var

yeni kullanıcının da seri nosu 1213 bunu karşılaştırmayı nasıl yapabilirim

yardım edecek arkadaşlardan bloklarla anlatmlarını rica ederim

    

 

10 Görüntülenme

4 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

Profile picture for user ugkaygisiz
ugkaygisiz
18.04.2019 - 01:34

hocam ilginize  gonulden tesekkur ederim.

"Bir sorum var: AI2 APP'ın devamlı çalıştığı bir cep olacak mı " evet tabiki hickapanmayan bir tablet var.

gonderdiğiniz uygulamayı inceledim ama bişey anladımmı sanırım hayır diyebilirim

anladığımı soyle izah edeyim isterseniz

bir instant degeri olusturucam bunun value olarak da bir değer verecegim sanırım ama boyle yaparsambu bilgiyi nasıl listeleyecegim ve değerdeki  verileri app nasıl işleyecek

https://drive.google.com/file/d/1-l1bfmK6WnEgiBJczc5v5XtEm17pHdHr/view?usp=sharing

bunu anlayamadım

 benim yapmak istediğim asagıdaki gibiydi

https://drive.google.com/file/d/10PCEjdBJp54MYib6eA7YSckyVKfv300N/view?usp=sharing

veya

https://drive.google.com/file/d/1EOXfEDBdqdeA22QQeB20GsDMEmB9czhg/view?usp=sharing

boyle bişey olursa amac

1-listview customda veya listview de  listelenip herhangi bir kullanıcı tarafından mudahale edilmesini saglamak

2 - herbir tag icin (tarih,saat,cihaz,bolumu,islem)  ayrı bir global liste olusturup app uzerindeki tarih ve saat ile karsılastırıp zamanı geleni isleme almak

gibi dusunmustum

ugrastırdıgım icin gercekten affınıza sıgınırım

 

 

picture-158072-1530701953.jpg
TGUNEYSU
17.04.2019 - 01:33

Uğur Bey,

Anlattığınızdan anladığıma göre ileri tarihlerdeki komutları FB'ye  yazıp zamanı geldiğinde uygulamak istiyorsunuz. Bir sorum var: AI2 APP'ın devamlı çalıştığı bir cep olacak mı ? Sebebi zamanı gelen komutların yapılabilmesi için TİMER'la düzenlenecek olayların vakti geldiğinde yapılabilmesi için. Eğer bu var sa, bunu yapmak için bir fikir: FB'ye DATE&TIME (tarih ve zaman) dan oluşan bir INSTANT değeri yazmanız gerekir ve bunun KEY (anahtar) değeri de INSTANT değerinin içinde bulacağınız 13 rakamlık "milliseconds since January 1, 1970 in UTC" değeri olursa, FB sizin komutlarınızı bu anahtar değere göre otomatikman sırada tutar. Buna eklemeniz gereken bir alan da kayıtın uygulanmış olup olmadığını gösteren bir BOOLEAN. Şimdi bunlarla çalışarak bir komut eklediğinizde FB size güncelleme yollar ve bununla TAGleri okuyup uygulanmamış olanların ilkini TİMER event olarak zamanlayabilirsiniz. Sonra bu uygulandığında bunu "uygulanmış" olarak  FB'yi güncellersiniz veya isterseniz bu kayıtıları silersiniz. Aşağıdaki örnek uygulamada seçilen tarih ve zamanda, belirtilen telefona SMS yollanmaktadır. Ekrandaki TEXT alanı da hesaplanan zaman ve FB anahtar değerini gösterir. Bununla biraz oynayıp probleminize uygulayabilirsiniz. Kritik olan INSTANT hesapları ve anahtar oluşturma kodda kullanılmıştıır. Tabi ki FB kullanmadım örnek basit olsun diye. Fakat probleminizin kilit noktasına yardımcı olacağını sanıyorum. İyi çalışmalar.    

ÖRNEK AI2 linki:  https://drive.google.com/file/d/1i5yFIBVq7RWLveDexXVGtAZ2E8_wsk9c/view?usp=sharing

Profile picture for user ugkaygisiz
ugkaygisiz
16.04.2019 - 05:45

hocam cvp lar için cok cok tesekkur ederim

ilk 2 cvp ta anlasılmayan bi taraf yok ok ama 3 ncu cvp ta anlasılan bişsey yok diyebilirim acemiligime bagıslayın ltf

ben size projeyi anlatayım sanırım daha kolay yardım alabilirim gibi geldi

soyle proje ufak bir atolyede makinaları mesai baslamadan once hazırlamaya yarar toplamda 9 makine var

her biri icin 2 adet esp 8266 nodemcu kullanıyorum makineleri app invertorde hazırladıgım app ile fire base kullanarak ac kapat ısıt sogut suyu ac havayı doldur vs gibi işlemleri sorunsuz ca yapıyorum

verileri fire base e 

https://espislem.firebaseio.com/

espislem taginin altına

mk1r1:"1" makine1 in resistans 1 ni aç diyorum

mk2su:"0" makine 2 nin suyunu kapat diyorum

mk3kapak:"1" makine 3 un operator kapagını kapat diyorum 

........ boyle komutlar gonderiyorum (isin bu kısmında  hic bir sorun yok)

ikinci bir veritabaında ise alarm veri tabanı (sorun burdan sonrası)

kullanıcılardan herhangi biri ileri ki bir tarih ve saate yukarıdaki gibi veriler gondersin ve tarih ve zaman geldiginde islem gerceklesebilsin

ornegin kullanıcı 1   (bugun 12.04.2019   saat 18,00)

16.04.2019 saat 06,30 da mk1 in r2 sini aç yani 1 yap

baska bir kullanıcı 

 hic kapanmayan bir cihaz var bu cihaz bu bilgileri alsın ve tarih ve saat geldiginde 

17.05.2019 saat 17,50 de mk4 un suyunu 0 yap  yani kapat diyebilsin

..... boyle devam edip gitsin 

app invertor tarzı uygulamalar app kapalı iken calısmadıgı icin atolye icin deyukardaki ornekte mesela

16.04.2019 saat 06,30 da mk1 in r2 sini aç yani 1 yap dedik ya 16 nisan saat 06.30 da app espislem veritabanına mk1r2:"1" verisini gondersin

veya ne bilgi varsa onu yapsın bu kayıtlar 100 lerce olabilir.

ve kayıtlı bilgileri de diger kullanılar kendi app leri uzerinden artık list view lemi olur grid view lemi bilmiyorum gorebilmeliler

yani list view icin  

satır:16.04.2019   06,30  mk1   r2  aç

satır2:17.05.2019   17,50  mk4   su   kapat  

gibi

 

picture-158072-1530701953.jpg
TGUNEYSU
16.04.2019 - 01:14

SORU1: https://www.projehocam.com/appinventor-firebase-realtime-db/  bağlantısından FBdb işlemleri hakkında bilgi edinebilirsiniz.     

SORU2: https://drive.google.com/file/d/1dQw3xhizQjf3H1ThFcVDwk94RLbp5Io_/view  bağlantısındaki örnek APP size Listview yu nasıl ayarlamanız gerektiğini gösterir. Birkaç veri girişi yapın ve ikinci sayfaya geçip yükleyin. Sonra da kodu takip edin.             

SORU3: Bunun cevabı biraz karışık. Veri tabanını nasıl kurduğunuza dayanır. FIREBASE gibi (NOSQL) veri tabanlarında anahtar değerleri aramak yalnız anahtarların üst dizin (PARENT) olduğu zaman kolaydır. Eğer aradığınız anahtar değer üst dizindeyse, getTags yapıp anahtarları listeye yükledikten sonra "is in List ? thing / list" işlemiyle anahtarların varlığını kontrol edebilirsiniz. Eğer anahtarınız üst dizin değilse (CHILD'sa), o zaman sizin bir anahtar Liste indeksi yaratıp bunu veri tabanınızdan güncelleyip sonra da gene önce yazdığım aynı yöntemle taramanız gerekir. Tabi ki bu kolay değil ve güncel uygulama bakımından zor bir yöntemdir. Bu tip veritabanlarında bu tip bir işleme gerek var sa daha uygun olacak teknik, her bir anahtar değer için ayrı bir değer veri tabanı kurmanızdır. Yani verileri yazarken, eğer alt dizin bir değer anahtar oluyorsa onu başka bir anahtar veri tabanına yazmanız gerekir. Sonra da aranan alana göre ona ait indeks veri tabanını kullanıp herhangi bir anahtar değerinin varlığını kontrol edebilirsiniz.    UNUTMAYIN: veri tabanları ile çalışmak kodlamadan daha çok veri tabanını ve anahtarları doğru kurmak becerisi gerektirir.    Umarım bu bilgiler size yardımcı olacaktır.