为什么我在我的代码函数中收到此错误返回 null?

why im getting this error in my code function returned null?

为什么我的小部件会出现此错误?:

======== Exception caught by widgets library =======================================================
The following assertion was thrown building StreamBuilder<UserData>(dirty, state: _StreamBuilderBaseState<UserData, AsyncSnapshot<UserData>>#1e46f):
A build function returned null.

The offending widget is: StreamBuilder<UserData>
Build functions must never return null.

To return an empty space that causes the building widget to fill available room, return "Container()". To return an empty space that takes as little room as possible, return "Container(width: 0.0, height: 0.0)".

The relevant error-causing widget was: 
  StreamBuilder<UserData> file:///Users/name/StudioProjects/project/lib/seitenleiste/meinacount.dart:356:16
When the exception was thrown, this was the stack: 
#0      debugWidgetBuilderValue.<anonymous closure> (package:flutter/src/widgets/debug.dart:305:7)
#1      debugWidgetBuilderValue (package:flutter/src/widgets/debug.dart:326:4)
#2      ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:4592:7)
#3      StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:4759:11)
#4      Element.rebuild (package:flutter/src/widgets/framework.dart:4281:5)
...
====================================================================================================

这是我的小部件


  @override
  Widget build(BuildContext context) {
final user = Provider.of<Userr>(context);
        return StreamBuilder<UserData>(
          stream: DatbaseService(uid:user.uid).userData,
          builder: (context, snapshot) {
            if(snapshot.hasData){
              UserData userData =snapshot.data;
              return Container(
                child: Scaffold(
                  appBar: AppBar(
                    backgroundColor: Colors.transparent,
                    elevation: 0.0,
                  ),
                  body: AnnotatedRegion<SystemUiOverlayStyle>(
                    value: SystemUiOverlayStyle.light,
                    child: GestureDetector(
                      onTap: () => FocusScope.of(context).unfocus(),
                      child: Form(
                        key: _formKey,
                        child: Stack(
                          children: <Widget>[
                            Container(
                              height: double.infinity,
                              child: SingleChildScrollView(
                                physics: AlwaysScrollableScrollPhysics(),
                                padding: EdgeInsets.symmetric(
                                  horizontal: 40.0,
                                  vertical: 10,
                                ),
                                child: Column(
                                  mainAxisAlignment: MainAxisAlignment.center,
                                  children: <Widget>[
                                    Center(
                                      child: Stack(
                                        children: [
                                          Container(
                                            width: 110,
                                            height: 110,
                                            decoration: BoxDecoration(

                                                borderRadius: BorderRadius.circular(100),
                                                image: DecorationImage(
                                                    fit: BoxFit.cover,
                                                    image: NetworkImage(
                                                      "https://images.pexels.com/photos/3307758/pexels-photo-3307758.jpeg?auto=compress&cs=tinysrgb&dpr=3&h=250",
                                                    ))),
                                          ),
                                          Positioned(
                                              bottom: 0,
                                              right: 0,
                                              child: Container(
                                                height: 35,
                                                width: 35,
                                                decoration: BoxDecoration(
                                                  shape: BoxShape.circle,
                                                  border: Border.all(
                                                    width: 4,
                                                    color: Theme.of(context)
                                                        .scaffoldBackgroundColor,
                                                  ),
                                                  color: Colors.green,
                                                ),
                                                child: Icon(
                                                  Icons.edit,
                                                  color: Colors.white,
                                                ),
                                              )),
                                        ],
                                      ),
                                    ),
                                    SizedBox(
                                      height: 10,
                                    ),
                                    Text(
                                      'Mein Profil',
                                      style: TextStyle(
                                        color: Colors.black,
                                        fontFamily: 'OpenSans',
                                        fontSize: 20.0,
                                        fontWeight: FontWeight.w600,
                                      ),
                                    ),
                                    showAlert2(),

                                      _buildEmailTF(userData),
                                    SizedBox(
                                      height: 30.0,
                                    ),
                                    _buildName(userData ),
                                    SizedBox(
                                      height: 30.0,
                                    ),
                                    _builduserName(userData),
                                    SizedBox(
                                      height: 30.0,
                                    ),
                                    _buildPasswordTF(userData),
                                    SizedBox(height: 30,),

                                    _buildPassword2TF(userData),
                                    _buildUpdateDataButton(),
                                    // _buildEmailform(),
                                  ],
                                ),
                              ),
                            )
                          ],
                        ),
                      ),
                    ),
                  ),

                ),
              );

            }else{
              return null;
            }

          }
        );


      }



错误信息中的答案是正确的:

A build function returned null.

The offending widget is: StreamBuilder Build functions must never return null.

To return an empty space that causes the building widget to fill available room, return "Container()". To return an empty space that takes as little room as possible, return "Container(width: 0.0, height: 0.0)".

你在 else 中返回 null

错误消息非常简单:

The offending widget is: StreamBuilder<UserData>
Build functions must never return null.

在您的 StreamBuilder 中,如果 snapshot 没有数据,您正在 returning null

@override
Widget build(BuildContext context) {
  final user = Provider.of<User>(context);
  return StreamBuilder<UserData>(
    stream: DatbaseService(uid: user.uid).userData,
    builder: (context, snapshot) {
      if (snapshot.hasData) {
        ...
      } else {
        return null;
      }
    },
  );
}

错误消息在这里提供解决方案:

To return an empty space that causes the building widget to fill 
available room, return "Container()". To return an empty space 
that takes as little room as possible, 
return "Container(width: 0.0, height: 0.0)".

所以,不是 returning null,只是 return 一个空的 Container:

@override
Widget build(BuildContext context) {
  final user = Provider.of<User>(context);
  return StreamBuilder<UserData>(
    stream: DatbaseService(uid: user.uid).userData,
    builder: (context, snapshot) {
      if (snapshot.hasData) {
      } else {
        return Container();
      }
    },
  );
}