首页 > 解决方案 > Google Auth idtoken 返回连接到 Firebase 的 null

问题描述

我是新来的。我正在开发一个使用实时数据库后端的应用程序。我想要令牌,因为要与客户打交道,所以我使用 google Authentication with firebase。制作登录屏幕。它将id令牌返回为null。所以我无法获得id令牌。我会尝试很多方法,但都失败了

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


}

标签: firebasefluttergoogle-authenticator

解决方案


推荐阅读