Флаттер: Не удается войти с помощью googleIdToken (Firebase) — ошибка состояния Http [500]

# #firebase #flutter #token #google-signin #http-status-code-500

Вопрос:

Я не могу войти в систему с помощью учетной записи Google в flutter. Вход в систему подключен к Firebase. Я не знаю, в чем проблема, но я думаю, что проблема заключается в маркере. Помогите мне, пожалуйста? Вот сообщение об ошибке, которое я получаю.

 I/flutter (27846): DioError [DioErrorType.RESPONSE]: Http status error [500]
I/flutter (27846): null    
E/flutter (27846): [ERROR:flutter/lib/ui/ui_dart_state.cc(177)] Unhandled Exception: NoSuchMethodError: The getter 'data' was called on null.
E/flutter (27846): Receiver: null
E/flutter (27846): Tried calling: data
 

Мой код:

   final GoogleSignIn _googleSignIn = GoogleSignIn();
  FirebaseUser user;

  Future<FirebaseUser> signInWithGoogle() async {
    final GoogleSignInAccount googleSignInAccount = await _googleSignIn.signIn();
    final GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(
    idToken: googleSignInAuthentication.idToken,
    accessToken: googleSignInAuthentication.accessToken);

var googleIdToken = googleSignInAuthentication.idToken;
var googleAccessToken = googleSignInAuthentication.accessToken;

final AuthResult authResult = await _auth.signInWithCredential(credential);
final FirebaseUser user = authResult.user;

AuthService().googleLogin(googleIdToken).then((val) {      
  if (val.data['success']) {
     var token2 = val.data['token'];
    print('SUCCESS AUTHENTICATION');
    Navigator.push(
      context,
      MaterialPageRoute(
        builder: (context) => MainPageUser(),
      ),
    );
  } else {
    print('WRONG EMAIL/ PASS');
  }
});

assert(!user.isAnonymous);
assert(await user.getIdToken() != null);

final FirebaseUser currentUser = await _auth.currentUser();
assert(currentUser.uid == user.uid);

return user;
 

}

Подтвердите подлинность.dart (отправка на сервер)

 googleLogin(google_ID) async{
    try {
      return await dio.post('https://brrtforce.herokuapp.com/api/auth/googlelogin',
          data: {"tokenId": google_ID},
          options: Options(contentType: Headers.jsonContentType));
    }
    on DioError catch (e) {
      print(e);
      Fluttertoast.showToast(
          msg: e.response.data['msg'],
          toastLength: Toast.LENGTH_SHORT,
          gravity: ToastGravity.BOTTOM,
          backgroundColor: Colors.red,
          textColor: Colors.white,
          fontSize: 16.0
      );
    }
  }