Google Auth idtoken возвращает значение null, подключенное к firebase

# #firebase #flutter #google-authenticator

Вопрос:

Я новичок в флаттере . Я разрабатываю одно приложение с использованием серверной базы данных в режиме реального времени . Я хочу использовать токен для работы с клиентами, поэтому я использую аутентификацию Google с firebase. чтобы создать экран входа в систему .Он возвращает маркер идентификатора как null.Поэтому я не смог получить идентификационный жетон. Я попробую много способов, но это не удалось

 import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:http/http.dart' as http;
import 'dart:convert';

//import 'package:shared_preferences/shared_preferences.dart';
import 'package:cake/models/http_exception.dart';
import 'package:firebase_auth/firebase_auth.dart';
import 'package:flutter/material.dart';
import 'package:google_sign_in/google_sign_in.dart';

class GoogleSignInProvider extends ChangeNotifier {
  final googleSignIn = GoogleSignIn();
  String? _idToken;
  // String? _userId;
  // String? get userid {
  //   return _userId;
  // }

  String? get idToken {
    return _idToken;
  }

  GoogleSignInAccount? _user;
  GoogleSignInAccount get user => _user!;

  Future googleLogin() async {
    final googleUser = await googleSignIn.signIn();
    if (googleUser == null) return;
    _user = googleUser;

    final googleAuth = await googleUser.authentication;
    final credential = GoogleAuthProvider.credential(
        accessToken: googleAuth.accessToken, idToken: googleAuth.idToken);

    // final result = await googleSignIn.signIn();
    // final ggAuth = await result!.authentication;
    // print(ggAuth.idToken);
    // print("srk is ass");
    // print(ggAuth.accessToken);

    googleSignIn.signIn().then((result) {
      result!.authentication.then((googleKey) {
        _idToken = googleKey.idToken;
        print(googleKey.accessToken);
        print(googleKey.idToken);
        print(googleSignIn.currentUser!.displayName);
      }).catchError((err) {
        print('inner error');
      });
    }).catchError((err) {
      print('error occured');
    });

    //  print(_idToken);
    //  print('ckodk');

    await FirebaseAuth.instance.signInWithCredential(credential);

    notifyListeners();
  }

  Future logout() async {
    await googleSignIn.disconnect();
    FirebaseAuth.instance.signOut();
    notifyListeners();
  }


}