【发布时间】:2021-10-10 11:20:53
【问题描述】:
我正在尝试创建驱动程序 UID 的可点击列表图块。在列表图块上,将显示驱动程序 UID。点击磁贴后,屏幕上将显示有关该特定驱动程序的相关信息,例如姓名和电话。
这是我所能达到的。
This is what my RTDB looks like
import "package:flutter/material.dart";
import 'package:google_fonts/google_fonts.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:firebase_database/firebase_database.dart';
class DriverListScreen extends StatefulWidget {
const DriverListScreen({key}) : super(key: key);
static const String idScreen = "DriverListScreen";
@override
_DriverListScreenState createState() => _DriverListScreenState();
}
class _DriverListScreenState extends State<DriverListScreen> {
final databaseReference = FirebaseDatabase.instance.reference();
FirebaseAuth auth = FirebaseAuth.instance;
List driverList = [];
var num = 0;
getDriverDetails() async {
// Get the driver UİD, show it on a clickable list.
// When list is clicked, show the relevant info
databaseReference.child("users").child("driver").onValue.listen(
(event) {
setState(() {
var value = event.snapshot.value;
var driverSKIDS = value.keys;
for (var driverSKID in driverSKIDS) {
driverList.add(driverSKID);
print(driverList[num]);
num += 1;
}
});
},
);
return driverList;
}
@override
void initState() {
super.initState();
print("Entering Scafold");
getDriverDetails();
}
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
elevation: 0,
centerTitle: true,
title: Text(
"Driver List",
style: GoogleFonts.lexendMega(
color: Colors.black,
),
),
),
body: Container(
child: SingleChildScrollView(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
Flexible(
child: ListView.builder(
itemCount: driverList.length,
itemBuilder: (context, int index) {
return Card(
child: ListTile(
tileColor: Colors.blue,
selectedTileColor: Colors.red,
title: Text(driverList[index]),
),
);
},
),
),
],
),
),
),
);
}
}
【问题讨论】:
标签: firebase flutter dart firebase-realtime-database