- 24 Nis 2021
- 43
- 0
Merhaba değerli TürkHackTeam ailesi bugün ki konumuzda sizlere Kullanıcı Girişli Blog Uygulaması konumuzun ikinci bölümüne ait olacak Liste Halinde göstermeden bahsedeceğim.
Blog Sayfalarının Liste Halinde Gösterilmesi
Uygulamanızda tablo olarak göstermek istediğiniz Firestore verileri olursa aşağıdaki kodu kullanabilirsiniz. StreamBuilder ile, ListView() yerine DataTable() widget döndürdük.
'
Kod:
import package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
class AnaSayfa extends StatelessWidget {
[USER=931120]Override[/USER]
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(title: Text("Anasayfa")),
body: VeriTablosu(),
);
}
}
class VeriTablosu extends StatefulWidget {
[USER=931120]Override[/USER]
VeriTablosuState createState() => VeriTablosuState();
}
[USER=931120]Override[/USER]
class VeriTablosuState extends State<VeriTablosu> {
[USER=931120]Override[/USER]
Widget build(BuildContext context) {
return StreamBuilder(
stream: FirebaseFirestore.instance.collection('Yazilar').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) return new Text('Loading...');
return new DataTable(
columns: <DataColumn>[
new DataColumn(label: Text('Başlık')),
new DataColumn(label: Text('İçerik')),
],
rows: _createRows(snapshot.data),
);
},
);
}
List<DataRow> _createRows(QuerySnapshot snapshot) {
List<DataRow> newList =
snapshot.docs.map((********Snapshot ********Snapshot) {
return new DataRow(cells: [
DataCell(Text(********Snapshot.data()['baslik'].toString())),
DataCell(Text(********Snapshot.data()['icerik'].toString())),
]);
}).toList();
return newList;
}
}
Kullanıcıdan ID bilgisi ve E-posta alma:
Kod:
FirebaseAuth auth = FirebaseAuth.instance;
print(auth.currentUser.uid);
print(auth.currentUser.email);
.dart'ın son hali:
Kod:
import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
class YaziEkrani extends StatefulWidget {
[USER=931120]Override[/USER]
_YaziEkraniState createState() => _YaziEkraniState();
}
class _YaziEkraniState extends State<YaziEkrani> {
TextEditingController t1 = TextEditingController();
TextEditingController t2 = TextEditingController();
var gelenYaziBasligi = "";
var gelenYaziIcerigi = "";
FirebaseAuth auth = FirebaseAuth.instance;
yaziEkle() {
FirebaseFirestore.instance.collection("Yazilar").doc(t1.text).set({
'kullaniciid': auth.currentUser.uid,
'baslik': t1.text,
'icerik': t2.text
}).whenComplete(() => print("Yazı eklendi"));
}
yaziGuncelle() {
FirebaseFirestore.instance
.collection("Yazilar")
.doc(t1.text)
.update({'baslik': t1.text, 'icerik': t2.text}).whenComplete(
() => print("Yazı güncellendi"));
}
yaziSil() {
FirebaseFirestore.instance.collection("Yazilar").doc(t1.text).delete();
}
yaziGetir() {
FirebaseFirestore.instance
.collection("Yazilar")
.doc(t1.text)
.get()
.then((gelenVeri) {
setState(() {
gelenYaziBasligi = gelenVeri.data()['baslik'];
gelenYaziIcerigi = gelenVeri.data()['icerik'];
});
});
}
[USER=931120]Override[/USER]
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Yazı Ekranı"),
),
body: Container(
margin: EdgeInsets.all(40),
child: Center(
child: Column(
children: [
TextField(
controller: t1,
),
TextField(
controller: t2,
),
Row(
children: [
RaisedButton(child: Text("Ekle"), onPressed: yaziEkle),
RaisedButton(child: Text("Günclle"), onPressed: yaziGuncelle),
RaisedButton(child: Text("Sil"), onPressed: yaziSil),
RaisedButton(child: Text("Getir"), onPressed: yaziGetir),
],
),
ListTile(
title: Text(gelenYaziBasligi),
subtitle: Text(gelenYaziIcerigi),
),
],
),
),
),
);
}
}
Bir konunun daha sonuna geldik.Esen Kalın