【发布时间】:2021-12-15 11:56:27
【问题描述】:
我想在抽屉中将我的crrentUser/logged In用户数据显示到我的个人资料中,当我滑动它时,将显示当前/登录 用户 '姓名、电子邮件、照片' 会有一些其他的东西,比如注销按钮等。但是当我在该用户仪表板中与任何用户一起登录时。当我在抽屉上单击/滑动时,它会显示我存储在 users collection 下的 Firestore 中的所有用户数据。我只想显示 当前 用户个人资料数据,例如姓名电子邮件等。但它显示了 Firestore 中的所有集合。目前,我的 users 我的 firebase 集合中有 3 个用户。问题是当我滑动/单击抽屉时,它会在我的 抽屉 中显示所有 3users 数据。但我只想在我的抽屉
中显示当前/登录用户数据import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:flutter/material.dart';
import 'package:firebase_auth/firebase_auth.dart';
import '../screens/user_product_list_view.dart';
class UserDrawer extends StatefulWidget {
UserDrawer({Key? key}) : super(key: key);
@override
_UserDrawerState createState() => _UserDrawerState();
}
class _UserDrawerState extends State<UserDrawer> {
@override
void initState() {
super.initState();
getUser();
}
Future getUser() async {
var currentUserLoginUser = await FirebaseAuth.instance.currentUser;
var firebaseUser = await FirebaseFirestore.instance
.collection('users')
.doc(currentUserLoginUser!.uid);
print(currentUserLoginUser.email);
}
@override
Widget build(BuildContext context) {
return Drawer(
child: SafeArea(
child: Scaffold(
backgroundColor: Theme.of(context).primaryColor,
body: StreamBuilder(
stream: FirebaseFirestore.instance.collection('users').snapshots(),
builder: (BuildContext contex,
AsyncSnapshot<QuerySnapshot<Map<String, dynamic>>> snapshot) {
if (!snapshot.hasData) {
return Text('User is not found');
}
return ListView(
children: snapshot.data!.docs.map(
(document) {
return Stack(
children: [
///
Container(
padding: EdgeInsets.only(top: 105),
height: 300,
width: double.infinity,
decoration: BoxDecoration(
color: Theme.of(context).primaryColorDark,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(120))),
child: Column(
children: [
CircleAvatar(
radius: 40,
backgroundColor: Colors.blueAccent,
),
Text(
document['email'],
style: TextStyle(
fontWeight: FontWeight.bold, fontSize: 20),
),
],
),
),
Container(
padding: EdgeInsets.symmetric(
horizontal: 20, vertical: 10),
height: 100,
width: double.infinity,
child: Text(
'Profile',
style: TextStyle(
fontSize: 24,
fontWeight: FontWeight.bold,
),
),
decoration: BoxDecoration(
color: Theme.of(context).primaryColorLight,
borderRadius: BorderRadius.only(
bottomLeft: Radius.circular(80))),
),
],
);
},
).toList(),
);
},
),
),
),
);
}
}
【问题讨论】:
标签: flutter flutter-layout flutter-dependencies flutter-test