首页 > 解决方案 > 我在尝试创建个人资料时无法显示姓名,为什么?

问题描述

我遵循了一些教程,并成功在 firestore 上添加了用户,但是当当前用户正在登录时,我无法在个人资料页面上打印此用户,因为我的前端也有错误。

这是我的整个前端,出现此错误:

无法无条件调用方法“[]”,因为接收者可以为“null”。尝试使调用有条件(使用'?.')或向目标添加空检查('!')。”

我试过了 ?和 !但没有成功。

希望你能帮助我!

 FutureBuilder(
              future: FirebaseFirestore.instance
            .collection('users')
            .doc('uid')
            .get(),
              builder: (context, snapshot) {
                if (snapshot.connectionState == ConnectionState.done) {
                  return Text(snapshot.data['displayName'],
                  );
                } else {
                  return Text("Loading...");

和我的后端(如果需要)

import 'package:cloud_firestore/cloud_firestore.dart';
import 'package:firebase_auth/firebase_auth.dart';

Future userSetup(String displayName) async {
  CollectionReference users = FirebaseFirestore.instance.collection('Users');
  FirebaseAuth auth = FirebaseAuth.instance;
  String uid = auth.currentUser!.uid.toString();
  await users.doc(uid).set({'displayName': displayName, 'uid': uid });
  final result = await users.doc(uid).get();
  final data = result.data() as Map<String, dynamic>;
  return data['displayName'];
}

标签: firebasefluttergoogle-cloud-firestore

解决方案


推荐阅读