我是个新开发人员。我有一段代码可以从火基读取数据一次。
此代码:
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.hasData && !snapshot.data!.exists) {
return Text("Document does not exist");
}
if (snapshot.connectionState == ConnectionState.done) {
Map<String, dynamic> data = snapshot.data!.data() as Map<String, dynamic>;
return Text("Full Name: ${data['full_name']} ${data['last_name']}");
}
return Text("loading");
},
);
}
}它工作得很好,但我想将这些方法作为这样的函数放入我的提供者中
Future<DocumentSnapshot> getUserName(String uid) => _database.doc(uid).snapshots();所以当我调用这个函数时,我想把一个函数放入provider类,它返回这个文档的一个字段数据.(如所示的app所示,替换GetUserName类,仅作为函数方法)
那么,如何编写此函数,以及如何将其称为数据映射呢?
编辑:
如图所示:

在这里,我得到了作为StreamBuilder的数据及其良好的工作
这里是我的提供者类中流的解释方法。


如下图所示

Map<String, dynamic> data我使用的数据如下
数据“用户名”
它工作得很好,所以我想在我的Provider类中放入一个函数并返回一个字符串,其中有两个参数,例如:
文本(myfunction(uid,value));它从(uid)返回一个字符串,value = datavalue
发布于 2022-08-13 12:38:06
在返回HomePage()之前添加它;
auth.userData = data;
return HomePage();在Auth provider中添加它
class Auth implements AuthBase {
Map<String,dynamic>? userData;
String getUserName(String parameter) {
return userData![parameter].toString();
}
}https://stackoverflow.com/questions/73343573
复制相似问题