首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法从防火墙登录到google帐户

无法从防火墙登录到google帐户
EN

Stack Overflow用户
提问于 2022-08-17 09:37:23
回答 1查看 68关注 0票数 0

,这是我的消防基地,

下面是我从Firebase Auth获得服务的firebase类:

代码语言:javascript
复制
class FirebaseService {    
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final GoogleSignIn _googleSignIn = GoogleSignIn();
  static const String _GOOGLE_AUTH = "/social-login";
    
  Future<String?> signInWithGoogle() async {
    try {
      final GoogleSignInAccount? googleSignInAccount =
      await _googleSignIn.signIn();
      final GoogleSignInAuthentication googleSignInAuthentication =
      await googleSignInAccount!.authentication;
      final AuthCredential credential = GoogleAuthProvider.credential(
        accessToken: googleSignInAuthentication.accessToken,
        idToken: googleSignInAuthentication.idToken,
      );

      await _auth.signInWithCredential(credential);
      printMe("idtoken ${googleSignInAuthentication.idToken}");
    } on FirebaseAuthException catch (e) {
      print(e.message);
      rethrow;
    }
    return null;
  }

签出方法:

代码语言:javascript
复制
  Future<void> signOutFromGoogle() async {
    await _googleSignIn.signOut();
    await _auth.signOut();
  }
}

这是运行日志。

EN

回答 1

Stack Overflow用户

发布于 2022-08-17 10:23:12

如果没有错误信息,很难回答这个问题,但是给您

记住将SHA键添加到防火墙中。

代码语言:javascript
复制
  final FirebaseAuth _auth = FirebaseAuth.instance;
  final GoogleSignIn _googleSignIn = GoogleSignIn();
  static const String _GOOGLE_AUTH = "/social-login";

  Future<TPFirebaseUser> signInWithGoogle() async {
    try {
      final GoogleSignInAccount? googleSignInAccount = await _googleSignIn.signIn();
      if (googleSignInAccount != null) {
        final GoogleSignInAuthentication googleSignInAuthentication = await googleSignInAccount.authentication;
        final AuthCredential credential = GoogleAuthProvider.credential(
          accessToken: googleSignInAuthentication.accessToken,
          idToken: googleSignInAuthentication.idToken,
        );
        final UserCredential authResult = await _auth.signInWithCredential(credential);
        return TPFirebaseUser(authResult.user, null, null);
      }
    } on FirebaseAuthException catch (error) {
      return TPFirebaseUser(null, null, error);
    } catch (error) {
      return TPFirebaseUser(null, error.toString(), null);
    }

    return const TPFirebaseUser(null, 'Unknown Google Sign in error', null);
  }
代码语言:javascript
复制
  Future<void> signOut() async {
    try {
      Future.wait([
        _auth.signOut(),
        _googleSignIn.signOut(),
      ]);
    } catch (error) {
      rethrow;
    }
  }
代码语言:javascript
复制
import 'package:equatable/equatable.dart';
import 'package:firebase_auth/firebase_auth.dart';


class TPFirebaseUser extends Equatable {
  final User? user;
  final String? error;
  final FirebaseAuthException? authException;

  const TPFirebaseUser(this.user, this.error, this.authException);

  @override
  List<Object?> get props => [user, error, authException];
}
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73386146

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档