title: Stream Initial state is ConnectionState.waiting instead of null
body: <pre><code>import 'dart:async';
  
  import 'package:flutter/material.dart';
  import 'package:firebase_auth/firebase_auth.dart';
  import 'package:google_sign_in/google_sign_in.dart';
  
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final GoogleSignIn _googleSignIn = new GoogleSignIn();
  
  class HomePage extends StatefulWidget {
    static String tag = 'home-page';
  
    @override
    HomePageState createState() {
      return new HomePageState();
    }
  }
  
  class HomePageState extends State&lt;HomePage&gt; {
    Stream&lt;FirebaseUser&gt; _currentUser;
  
    Future&lt;FirebaseUser&gt; signInWithGoogle() async {
      print('google signin invoked');
  
      GoogleSignInAccount googleUser = await _googleSignIn.signIn();
      GoogleSignInAuthentication googleAuth = await googleUser.authentication;
      FirebaseUser user = await _auth.signInWithGoogle(
        accessToken: googleAuth.accessToken,
        idToken: googleAuth.idToken,
      );
      print("signed in " + user.displayName);
  
      return user;
    }
  
    @override
    Widget build(BuildContext context) {
      final lblWelcome = Padding(
          padding: EdgeInsets.all(8.0),
          child: Text('Frnds Payment',
              style: TextStyle(fontSize: 28.0, color: Colors.green)));
  
      final btnSignin = new MaterialButton(
          child: const Text('Sign In with Google'),
          onPressed: () {
            print('button clicked');
            _currentUser = signInWithGoogle()?.asStream();
          });
      final txtOutput = new StreamBuilder&lt;FirebaseUser&gt;(
          stream: _currentUser,
          builder: (BuildContext context, AsyncSnapshot&lt;FirebaseUser&gt; snapshot) {
            switch (snapshot.connectionState) {
              case ConnectionState.none:
              case ConnectionState.waiting:
                return new Center(child: new CircularProgressIndicator());
              default:
                if (snapshot.hasError)
                  return new Text('Error: ${snapshot.error}');
                else
                  return new Center(
                      child: new Text('${snapshot.data.displayName}'));
            }
          });
  
      final body = Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: &lt;Widget&gt;[lblWelcome, btnSignin, txtOutput],
        ),
      );
  
      return Scaffold(body: body);
    }
  }
  </code></pre>
  
  <p>I am newbee to Dart, this is my 1st app.
  I need to display the Username after the signin is succesful.</p>
  
  <p>Whenever I start the application it goes to ConnectionState.waiting instead of ConnectionState.none.</p>
  
  <p>Also it does not render the textbox with displayname on succesful signin. reloading it does render the display name.</p>