当用户转到个人资料页面查看自己的信息时,我一直试图显示文档。到目前为止,我所做的是:
class Profile extends StatefulWidget {
Profile({Key key}) : super(key: key);
@override
_ProfileState createState() => _ProfileState();
}
class _ProfileState extends State<Profile> {
Firestore _firestore = Firestore.instance;
List<DocumentSnapshot> _members = [];
bool _loading = true;
_getMember() async {
var firebaseUser = await FirebaseAuth.instance.currentUser();
Query query = _firestore.collection("membership");
setState(() {
_loading = true;
});
QuerySnapshot querySnapshot = await query.getDocuments();
_members = querySnapshot.documents;
setState(() {
_loading = false;
});
}
@override
void initState() {
super.initState();
_getMember();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Profile"),
),
body: Container(
child: _members.length == 0 ? Center(child: Text("empty"),) : ListView.builder(
itemCount: _members.length,
itemBuilder: (BuildContext context, int index) {
return ListTile(
title: Text(_members[index].data["name"]),
);
}),
),
);
}
}
但这仅显示名称。此外,它还显示了我不想发生的来自同一集合的另一个文档。
我的问题是: 如何获取具有文档中所有值的特定文档的数据? 以特定顺序,例如:
名称:gün
姓氏:uluutku
年龄:59
重量:90
电话号码:+05075326895
注意:我使用用户ID作为文档ID。
答案 0 :(得分:0)
正如评论中指出的那样,您必须遵循文档的路径,而不仅仅是查询整个Collection以从用户那里收集信息。这是一个如何使用用户ID检索文档的示例:
void _onPressed() async{
var firebaseUser = await FirebaseAuth.instance.currentUser();
firestoreInstance.collection("users").document(firebaseUser.uid).get().then((value){
print(value.data);
});
}
您可以在here
中找到更多有关如何执行此操作的示例