# #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
);
}
}