首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制一个stateLessWidget的功能

控制一个stateLessWidget的功能
EN

Stack Overflow用户
提问于 2022-08-13 10:43:21
回答 1查看 73关注 0票数 0

我是个新开发人员。我有一段代码可以从火基读取数据一次。

此代码:

代码语言:javascript
复制
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");
      },
    );
  }
}

它工作得很好,但我想将这些方法作为这样的函数放入我的提供者中

代码语言:javascript
复制
Future<DocumentSnapshot> getUserName(String uid) => _database.doc(uid).snapshots();

所以当我调用这个函数时,我想把一个函数放入provider类,它返回这个文档的一个字段数据.(如所示的app所示,替换GetUserName类,仅作为函数方法)

那么,如何编写此函数,以及如何将其称为数据映射呢?

编辑:

如图所示:

在这里,我得到了作为StreamBuilder的数据及其良好的工作

这里是我的提供者类中流的解释方法。

如下图所示

代码语言:javascript
复制
Map<String, dynamic> data

我使用的数据如下

数据“用户名”

它工作得很好,所以我想在我的Provider类中放入一个函数并返回一个字符串,其中有两个参数,例如:

文本(myfunction(uid,value));它从(uid)返回一个字符串,value = datavalue

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-08-13 12:38:06

在返回HomePage()之前添加它;

代码语言:javascript
复制
auth.userData = data;
return HomePage();

在Auth provider中添加它

代码语言:javascript
复制
class Auth implements AuthBase {
    Map<String,dynamic>? userData;
    String  getUserName(String parameter) {
    return userData![parameter].toString(); 
    }

}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73343573

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档