database - Flutter firebase,如何检索用户数据并将其放在地图或列表中
问题描述
我在互联网上看到了很多例子,但在每种情况下,数据都在列表视图中返回。我不想在列表视图中打印。我想在应用程序中使用数据。这就是我在 firebase 上添加数据的方式。(我正在使用类信息)。
void infouser(context) async {
final db = FirebaseFirestore.instance;
final info = Info(yourname, animaName, yourmail);
final uid = await Provider.of(context).auth.getCurrentUID();
await db.collection("userData").doc(uid).collection("info").add(info.toJson());
}
我也试过用set,
createInfo(context) async {
final uid = await Provider.of(context).auth.getCurrentUID();
DocumentReference documentReference =
await FirebaseFirestore.instance.collection('Animal').doc(uid);
Map<String, dynamic> todos = {
'name': yourname,
'animalname' :animalName,
'email' : yourmail,
};
documentReference.set(todos).whenComplete(() {
print( yourname, animalName, yourmail
);
});
}
在这两种情况下,我只能在 Listview 上打印数据。但这不是我想要的。我希望将数据放在列表或地图上,以便能够在应用程序的其他地方使用它。拜托,如果你有一个链接(或给我一个代码示例),我可以看到示例,我将不胜感激。谢谢你。
解决方案
这是从 firestore 检索数据作为地图的示例:
class GetUserName extends StatelessWidget {
final String documentId;
GetUserName(this.documentId);
@override
Widget build(BuildContext context) {
CollectionReference users = FirebaseFirestore.instance.collection('users');
return FutureBuilder<DocumentSnapshot>(
future: users.doc(documentId).get(),
builder:
(BuildContext context, AsyncSnapshot<DocumentSnapshot> snapshot) {
if (snapshot.hasError) {
return Text("Something went wrong");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data = snapshot.data.data();
return Text("Full Name: ${data['full_name']} ${data['last_name']}");
}
return Text("loading");
},
);
}
}
我建议使用https://firebase.flutter.dev/docs/firestore/usage/?从 Flutter 使用 Firebase 时的文档
推荐阅读
- python - 将列表的所有元素分别附加到python中另一个列表的所有元素
- amazon-web-services - 如何在 AWS 控制台中删除 AWSServiceRoleForSupport?
- cmd - 在 Windows 中使用键从 Tcl 调用命令提示符
- c - 为什么 .o 文件在使用 GCC 编译时似乎有一个大小为 0 的 .bss 部分?
- python - 为什么 SQLAlchemy 不添加自动增量?
- java - 使用字符串标记器获取不同行的输入
- tensorflow - 这么快就用完了内存-tensorflow-gpu
- python - Python如何检查列表中的项目是否为浮点数,如果是,将其更改为字符串?
- javascript - 如何在对象数组中获取最大值
- xslt - BizTalk 映射:如何从循环中提取单行,但可能将其扩展到几个目标字段?