【发布时间】:2019-10-22 23:02:28
【问题描述】:
我是 Flutter 和 Firestore 的新手。我正在构建一个社交媒体应用程序,需要从当前登录的用户获取一些用户信息到用户个人资料页面。如用户名、电子邮件等。 我已经设法将用户数据上传到 Firestore,但我正在努力将当前的用户信息恢复到我的项目中。
我已经尝试过这种方法,它确实从 Firestore 中获取了用户信息,但不幸的是没有获取当前的用户信息。 我想问题是我在 firestore 的数据库中停留在第一个文档上?
StreamBuilder(
stream:
Firestore.instance.collection('userData').snapshots(),
builder: (context, snapshot) {
if (!snapshot.hasData) {
return CircularProgressIndicator();
}
return Container(
child: Padding(
padding: const EdgeInsets.only(top: 75.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(
snapshot.data.documents[0]['userName'],
style: TextStyle(fontSize: 25.0),
),
Padding(
padding: const EdgeInsets.only(top: 5.0),
child:
Text(snapshot.data.documents[0]['email']),
),
],
),
),
);
}),
我非常感谢任何潜在的解决方案。
谢谢!
【问题讨论】:
-
答案取决于您在 Firebase 中存储用户数据的方式。如果你使用用户的UID作为他们在数据库中的文档的ID,那么你可以通过
Firestore.instance.collection('userData').document(FirebaseAuth.currentUser.uid)获取当前用户的文档。我可能在某处遗漏了await,但我希望你能明白。 -
谢谢弗兰克!这让我更近了一步!但我仍然面临一些问题。请您解释一下我应该如何使用用户的 UID 作为他们在数据库中的文档的 ID?如前所述,我对整个 firebase 概念很陌生……所以请与我裸露。我现在的代码,将用户数据存储在 Firebase 中,如下所示: _firestore.collection('userData').add({ 'userName': userName, 'cityName': cityName, 'instrument': instrument, 'email': email }) ;我希望这能让人明白,再次感谢您的回复!
标签: flutter google-cloud-firestore