title: Flutter with firebase trying to access the current user on a different screen or widget than my login screen
body: <p>So I have a dart file for my login screen and then a different home file. I'm trying to access the user id in the home file to get the users unique Cloud Firestore document. However whenever I call getUser() it says Future is not a subtype of type 'String'. Does that mean that for some reason the Future isn't being unwrapped to return the uid String? </p>
  
  <pre><code>getUser() async {
        FirebaseUser user = await FirebaseAuth.instance.currentUser();
        return user.uid;
    }
  </code></pre>
  
  <p>Here is where I call get user in a different dart file than the authentication but in the same file as my getUser() function.</p>
  
  <pre><code>return StreamBuilder&lt;DocumentSnapshot&gt;(
       stream: Firestore.instance.collection('watchlists').document(getUser()).snapshots(),
       builder: (BuildContext context, AsyncSnapshot&lt;DocumentSnapshot&gt; snapshot){
         if (snapshot.hasError) {
           return new Center(
             child: Text('Error: ${snapshot.error}'),
           );
         }
         if (!snapshot.hasData) {
           return new Center(
             child: CircularProgressIndicator(),
           );
         }
         else {
           var documents = snapshot.data.data;
           var vals = documents.values;
           List&lt;WatchListItem&gt; watchListItems = [];
           for (int x = 0; x &lt; vals.length; x++) {
             watchListItems.add(
               WatchListItem(
                 symbol: vals.elementAt(x).toString(),
                 price: 190.79,
               ),
             );
           }
  
           return new Center(
             child: ListView(
               children: watchListItems,
             ),
           );
         }
       },
     );
  </code></pre>
  
  <p>When I try getUser().toString() the error I get is that the getter 'values' was called on null (I am trying to get database values). Can the current user only be accessed at the time of authentication? Or can it be accessed anywhere in the app at any time as long as a user is logged in? A workaround I see is to get the uid at login and then pass it as a parameter to every new Widget I go to. I'm having a really tough time with this because somehow Google barely has any documentation on using their own Flutter with their Firebase. </p>