0:00 Herkese selamlar Bir önceki dersimizde yaptığımız işlemlere biraz daha değiştirerek veya da Biraz kompleks hale getirerek devam edeceğiz şu anda Aslında Delete ve update işlemi için herhangi bir özel veriyi tanımlayamama neydi manuel olarak gidip ıd'si alıp firebase' buraya tanımladığımız da onu silebiliyoruz ya da update edebiliyoruz ama biz verinin hangi veriyi işleme tabi tutmak istiyorsak o işlemi yapılmasını istiyorduk Bundan dolayı da hangi işlemi yapacağımıza dair bir atama yapmamız gerekiyor bu ıd'yi spesifik olarak almamız gerekiyor Örneğin Şu anda test test test @ test.com Yazdım 1 2 4 5 6 yazdım bekliyorum Pack entte bulunan dataları geldi gördüğünüz gibi bu şekilde datalar var Ancak verilerime
0:46 baktığımızda Bunun içerisinde bir ID tanımlaması yok Oysa ki bizim burada verilerimizin kendisine Has ıdleri var bu ID de aslında nereden geliyor Şuradaki kısma baktığımızda Get data' da aslında yorum satırını aldığımızda Doc data kısmını Biz set ediyorduk ama Doc n ıd'yi de alabiliyoruz yani dokümantasyonun ıd'si de alabiliyoruz aslında şurada bir yapı oluşturuyoruz biz bu yapının içerisine gelen veriyi şu şekilde ekledik terminaldeki Örneğin bu veriyi alayım ben şu şekilde bir veri yapmış olduk Örneğin example diye bir yapı oluşturuyorum bunu sileceğiz daha sonra gelen veri şunun içerisine set edildiği zaman şu şekilde set ediliyor Ancak bunun içerisine bir obje olduğu için bir de ben istiyorum ki şöyle bir yapı olsun
1:32 virgül koyuyorum şurada ID diye bir ID isini alsın sonra içerisine de dokümantasyonun Örneğin her biri için getirip ıd'si eklesin istiyorum Bunun için şöyle bir işlem yapmamız gerekiyor Biz zaten Doc nı tarafında şurada Doc nd tarafında burayı gördüğünüz gibi biz kendisi halinde bir obje olarak alıyordum şimdi ben bu objeyi açacağım Şuradaki ID diye koymadan önceki yalın hali vardı ya şu objeyi içerisindeki verileri objeden çıkaracağım objeden çıkarıp içerisine ID ekleyerek tekrar bir obje haline getireceğim O da şu şekilde olacak Bunu kapatıyorum işimiz yok bununla Biz All dataı set ederken ufak bir değişiklik yapacağız buradaki
2:19 işlem şu bunu aşağı indiriyorum Aslında ne istiyorduk Biz burada datayı daha farklı bir hale getirmemiz gerekiyor Yani obje açıyorum yeni bir obje oluşturuyorum bunu da içerisine dahil ediyorum objeyi oluştururken içerisine dahil ederken aslında kendisinin de obje olduğu için objeden çıkartmam gereken durumlarda 3 nokta koyuyorum bu ü nokta aslında obje olarak koymak yerine objeyi çıkartıyor contenti ve içindeki value yani değerini alıyor içerisine ekliyor bunu alıyor içerisine ekliyor tekrardan title derken bütün verileri yeni bir objenin içerisine taşıyor bu yeni bir obje içerisine taşı olayında bu kadar veriyi kaydettik Şimdi biz Ekstradan bir de ıd'si kaydetmek istiyoruz virg
3:05 diyorum Burada ID diyorum Doc nta ID diyorum nereden geldi zaten Doc nıd firebase' kendi dokümantasyonun da ıd'ye ulaşmak için böyle yazmanız gerekiyor diyor dokümantasyon geliyor nokta ıd'si var Bütün verilerde bütün Back endler de bu sistem böyle çalışmıyor çalışmayacak O yüzden Her gördüğünüz Ere bir nokta ID yazdığımda ID gelecek demeyin Eğer ıd'si varsa ve firebase bu şekilde verdiği için bu şekilde kullanıyoruz şimdi bu şekilde yaptığımızda Biz Get data dediğimizde o veri değişmiş oluyor şimdi ekranda gördüğünüz gibi biz indeksini yansıtıyoruz değil mi ekrana şu şekilde indeksini yansıtıyoruz diyelim ki bir tane de text buradaki yapıyı kullanım value soru işareti koyuyorum nokta ID koyuyorum Çünkü şu an herhangi bir ıdm Yok ya Hata çıkacaktı ekranda ıdler imiz
3:52 de aslında geldi Neden Çünkü biz Save kısmına update yapmış olduk burada herhangi bir şekilde ıdler imiz var ıdler ekrana y attığımızda görüntülensin diye hatta şurada Save data diyorum bir ID İso daha geldi hepsi de farklı farklı ıdler gördüğünüz gibi ben bu Delete işlemini yapmak için ne yapmam gerekiyor spesifik bir işlem için tutacağım Şimdi reload yapıyorum tekrardan test test.com giriyorum 1 2 3 4 5 6 girip çalıştırıyoruz buradaki sadece şu kırmızılıklar sebebi de soru işareti koymamız kaynaklanıyor Bunu kaldırırsak sorun kalmıyor zaten artık ıdm de var gördüğünüz gibi veri iz aslında ıdli bir veri haline geldi Neredeki update data Yukarıdaki şu Yapı gibi bir yapı haline dönüştü nereden anlıyoruz bunu datayı
4:38 konsol log yapıyorduk ya çağırdıktan sonra yukarıda o yüzden şurada kentimiz var kentimizin bakın İçerisi ve ıd'si de var Sonra lesson ve title olarak da devam ediyor gayet güzel bir şekilde ilerliyor Şimdi ben spesifik olarak bazılarını silmek istiyorum diyelim spesifik olarak silmek istediklerime de örneğin şurada ekrana yansıtıyorum Ama bu ekrandakileri vi yerine pressable olarak set etmek istiyorum Yani bunların Her biri tıklanabilir bir yapıda olsun Aslında butonlar şurada Delete sadece spesifi Delete yapıyordu Ya ben aslında burada şöyle bir şey yapacağım Delete butonum muza gerek kalmayacak Kendisinin üzerine tıkladığımda silinsin istiyorum bundan dolayı hem update'in içerisine hem value delin içerisini şöyle yapacağız value gireceğim value
5:26 girdikten sonra update kısmında farklı bir şey onu göstereceğim sonra value girdikten sonra buradaki elimizde girdiğimiz ID yerine otomatik olarak Şuradaki valu alacağız buradaki value yerine yerleştireceğiz yani Delete date içerisinde bir ID gönderilecek backend bu silinmiş olacak bu yüzden buraya da bir try Catch yapsak daha iyi olacak çünkü ne yapıldığını görelim Şurayı buraya getirdik Eğer başarıyla silindiyse Ne diyeceğiz Delete successful şimdi Bu işlem gerçekleştiyse bunu yansıtıyoruz yoksa erroru yansıtıyoruz şimdi Delete date' mızı getiriyoruz ve buradaki pressable daki butonum vardı ya bu pressable aslında bir onpress alabiliyor yani tıklandığında Hatta bunu şöyle yapabiliriz konsol log Click diyorum
6:13 tıklandı anlamında bakın üzerine geldiğimde tıklandı Hatta bunu şöyle de gösterebiliriz verinin ıd'si de alabiliriz mesela verinin ıd'si yansıtabiliriz ki zaten neyi göndereceğimiz Buradan daha iyi görebilirsiniz ben geliyorum bunun üzerine tıklıyorum bunun ıd'si bunun üzerine geliyorum bunun ıd'si bunun üzerine geliyorum bunun ıd'si Bunlar da aynı şunlar gibi bir buton haline getirebiliriz sadece pressable bir Style vermemiz gerekiyor o zaman biz buraya Delete dataı koyup valu koyduktan sonra istediğimiz veriyi silebiliriz Örneğin bakın şurada sıırı siliyorum Aslında tıklandı Delete successful diyor silindi ekranda update etmedi Onu da yapacağız ama gördüğünüz gibi şurada reload yapıyorum 3 verimiz vardı artık 2 verimiz var Ve hepsi de silinebilir ekrana nasıl yansıtılan Delete data
7:00 yapıyoruz ama tekrardan Save data işlemini yapmış gibi şurada neydi aç kapa butonuyla Get dataı güncel olarak alabiliriz Aslında is sav yerine bu işte değişikliğe uğradı mı gibi yapı olacak ya set is save' buraya Normalde bir tane daha yapı olarak kullanabiliriz bunu obje haline getiriyorum ve bir tane daha function yazacağım içerisinde set is saved amacımız Save değil ama o hareketlensin anlamında is saved false ise True döndür yoksa false döndür diyoruz şimdi buna tıkladığımda artık ekrandaki veri de güncellenecek tıkladım bakın kayboldu kayboldu Save yapıyoruz Save yapıyoruz yeni verilerimiz ekleniyor eklenen veriler buraya geliyor ama tıkladığımız spesifik gidiyor Örneğin Mesela ortalardan bir tanesini
7:46 seçelim 2'yi seçelim Burada 2 kayboldu yenine yerine başka bir veri geldi Onun indeksi 2 olduğu için ekrana 2 olarak geldi Şuradaki 1 C ile başlıyor bakın 1i sildim ha 1i sildim bakın gördüğünüz gibi C kısmı kalmadı artık burada birinciye farklı bir doküman geldi bu şekilde de ekranda doküman yapabiliyorsunuz gelelim buradaki Aslında update kısmını update kısmında da tekrardan buraya value verip ıd'yi update edebiliriz Örneğin value olarak update yapabiliriz ama update de burada manuel olarak elimizle diyelim ki bir kullanıcıdan text input almak istiyoruz buranın yukarısına bir text input şimdi buradaki ekrana yansıttığımız değerlerde Aslında text input' umuzu açıyoruz text inputa ör Holder diyorum
8:31 enter data diyorum ekranda yansıtıldı buna bir Style verelim inl Verelim aşağıya göndermek yerine order with diyorum with değerini de 50 yde yapıyorum peding vertical da 5 veriyorum ekrana yansıttık Şimdi burada Aslında amacımız Ekrana bir şeyler yazmak o yüzden buradaki texin bu tarafı bizim için çok önemli değil 10 yapalım ekranda yazılmış olsun margin but vererek diğerlerinden bir uzaklaştır Tamam artık burada text dataı girdiğimizde Biz bir tane daha Us State açalım yukarıda o da update edeceğimiz veri olsun Örneğin use State diyelim update data bunu da String olarak kaydediyorum update the data
9:17 diyelim Çünkü aşağıda bir function var ya update data diye onunla çakışıyor update the data specific data değiştireceğimiz diyebiliriz Burada set kısmına inputa yazılan yazıları buraya verebiliriz text inputa on change text diyorduk ve içerisine set işlemini Burada gerçekleştirebiliyoruz valu da neydi update the data yapıyoruz ve bu şekilde ekrana yansıtmış oluyoruz şimdi buraya yazdıklarımız bu şekilde Aslında veriyi oraya gönderiyor şimdi bu aşamayı yaparken bir de update kısmında hangi datayı gönderecek O işleme tabi tutsun hangi kısmı istiyoruz şu şurada lesson değiştirsin istiyoruz değil mi Aslında lesson değil de contenti değişikliğe
10:03 uğrat hangi değişikliğe uğrat verimiz içerisinde content eştir buradaki tıkladığımızda yazdığımız veri var ya update the data bunu buraya update the dataı buraya göndersin yani Şuradaki kentimiz var ya spesifik olarak hangi ıd'ye tıkladı İsak ona göndersin istiyoruz Bundan dolayı da işte tıkladığımızda pressable da update verebiliriz öncesinde Delete işlemi yapıyorduk ya şu Delete ID vermiştik Bunun yerine update data diyorum update data dediğimde Örneğin Şuradaki content var ya ben buraya test yazısı ekliyorum ve Örneğin buradaki content var ya şu contenti değiştirmek için Üzerine tıklıyorum bakın verimiz değişti yerine content geldi Buna da tıklıyorum artık verimiz kendimiz update ettik neye bağlı
10:51 Yukarıdaki yazımıza bağlı Örneğin buraya test test test diye tekrar yazıyorum buraya tıkladığımda Aslında buradaki veri Güncellenmiş oluyor hem de aynı zamanda firebase' de güncellenmiş oluyor gördüğünüz gibi test test test bunu silip lesson lesson yazsak tıkladığımızda Şuradaki lesson lesson ama şundaki değiştirmedik Test Test olarak da database'e duruyor aslında Hem update edebildik Hem görüntüleyebilir bu şekilde de bir başarı elde etmiş oluyorsunuz bu yapıları istediğiniz gibi Manipüle edebilirsiniz bugünkü dersimiz bu kadar sorularınız varsa yorumlar bölümüne yazabilirsiniz Bir sonraki derste görüşmek üzere