使用FutureBuilder从Firestore获取Future

问题描述 投票:0回答:1

这是我的代码,我想在其中显示未来的电子邮件,但我将从Firestore中获取它。但是,我不确定我将如何需要使用FutureBuilder检索我的值,而我希望将其用作字符串。

这是我获取电子邮件的方法:

Future<String> getEmail() async {
    String _email = (await FirebaseAuth.instance.currentUser()).email;
    DocumentSnapshot snapshot = await _firestore.collection('users')
      .document(_email)
      .collection('met_with')
      .document('email')
      .get();
    // print("data: ${snapshot.data}"); // might be useful to check
    return snapshot.data['email']; // or another key, depending on how it's saved
  }

这是我的小部件树,在这里我尝试将电子邮件提取为字符串:

 @override
  Widget build(BuildContext context) {
    return Card(
      elevation: 3.0,
      shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(10.0)),
      child: ListTile(
        leading: CircleAvatar(
          backgroundImage: AssetImage(imagePath),
        ),
        trailing: Icon(Icons.more_horiz),
        title: Text(
          email,
          style: TextStyle(
            color: Colors.deepPurple[700],
            fontWeight: FontWeight.bold,
          ),
        ),
        subtitle: Text(infection),
        onTap: () => showModalBottomSheet(
            context: context,
            builder: (builder) {
              return Padding(
                padding: EdgeInsets.symmetric(vertical: 50.0, horizontal: 10.0),
                child: Column(
                  children: <Widget>[
                    BottomSheetText(
                        question: 'Email', result: getEmail()),
                    SizedBox(height: 5.0),
                    BottomSheetText(
                        question: 'Contact Time',result:"12:00 PM"),// getTimeStamp().toString()),
                    SizedBox(height: 5.0),
                    BottomSheetText(
                        question: 'Contact Location',
                        result: 'Silpukhuri, Guwahati'),
                    SizedBox(height: 5.0),
                    BottomSheetText(question: 'Times Contacted', result: '3'),
                  ],
                ),
              );
            }),
      ),
    );
  }
}
flutter dart future builder
1个回答
0
投票

您需要使用FutureBuilder

© www.soinside.com 2019 - 2024. All rights reserved.