anchor.diff:    Animation<double> _drawerContentsOpacity;
     Animation<Offset> _drawerDetailsPosition;
   
  -  Future<FirebaseUser> _signInSilentlyWithGoogle() async {
  -    var googleUser = _googleSignIn.currentUser;
  -    if (googleUser == null) {
  -      await _googleSignIn.signInSilently();
  +  Future<bool> _signIn({bool onlySilently = false}) async {
  +    final googleUser = await _signInWithGoogle(onlySilently);
  +
  +    if (googleUser != null) {
  +      final firebaseUser = await _signInToFirebase();
  +      return firebaseUser != null;
       }
   
  -    if (googleUser != null) {
  -      return await _auth.currentUser();
  -    }
  -
  -    return null;
  +    return false;
     }
   
  -  Future<FirebaseUser> _signInWithGoogle() async {
  +  Future<GoogleSignInAccount> _signInWithGoogle(bool onlySilently) async {
       var googleUser = _googleSignIn.currentUser;
  +
       if (googleUser == null) {
         googleUser = await _googleSignIn.signInSilently();
       }
  -    if (googleUser == null) {
  +
  +    if (!onlySilently && googleUser == null) {
         googleUser = await _googleSignIn.signIn();
       }
   
  -    if (googleUser != null) {
  -      final GoogleSignInAuthentication googleAuth =
  -          await googleUser.authentication;
  -      final FirebaseUser user = await _auth.signInWithGoogle(
  -        accessToken: googleAuth.accessToken,
  -        idToken: googleAuth.idToken,
  -      );
  +    return googleUser;
  +  }
   
  -      assert(user.email != null);
  -      assert(user.displayName != null);
  -      assert(!user.isAnonymous);
  -      assert(await user.getIdToken() != null);
  +  Future<FirebaseUser> _signInToFirebase() async {
  +    var googleUser = _googleSignIn.currentUser;
   
  -      final FirebaseUser currentUser = await _auth.currentUser();
  -      assert(user.uid == currentUser.uid);
  -
  -      return currentUser;
  +    if (googleUser == null) {
  +      return null;
       }
   
  -    return null;
  +    final GoogleSignInAuthentication googleAuth =
  +        await googleUser.authentication;
  +    final FirebaseUser firebaseUser = await _firebaseAuth.signInWithGoogle(
  +      accessToken: googleAuth.accessToken,
  +      idToken: googleAuth.idToken,
  +    );
  +
  +    return firebaseUser;
     }
   
     void _rebuild() {
  
positive.code: import 'package:flutter/material.dart';
  import 'package:google_sign_in/google_sign_in.dart';
  
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final GoogleSignIn _googleSignIn = new GoogleSignIn();
  
  class AccountDrawer extends StatefulWidget {
  
negative.code:       ),
      );
  
      _signIn(onlySilently: true).then((success) {
        if (success) {
          _rebuild();
        }
      });
  