Flutter(Android)集成谷歌登录

根据公司业务需要集成谷歌登录,自己也是摸索了一天,现将步骤记录如下:(需要将你的Android迁移到Androidx)

1.在自己Flutter项目的.yaml导入插件:

 firebase_auth: ^0.14.0       

 google_sign_in: ^4.0.4

(读者可去pub上自行查阅最新版本)

https://pub.dev/



引入以后记得Package get。

2.配置android:

在android/build.gradle文件中配置如下


在android/app/build.gradle文件中配置如下


(一定要配置在gradle文件的最底部,别问为什么,问就是不知道)

3.在Firebase控制台创建你的应用

进入Firebase控制台页面,如下


跟着步骤创建项目就不再过多赘述。


然后与你的项目相关联,

注册好你的应用之后,下载配置文件google-service.json,将这个文件放置android/app/目录下

这时候可以添加谷歌登录到你的项目中了



如果需要集成谷歌登录,必须为你的应用添加sha1值,关于生成keystore文件和获取sha1,网上有很多文章,本文就不再过多赘述,

(生成一个keystore的sha1值,也可以再添加一个debug.keystore的sha1值方便测试调试)

添加完以后下载新的google-service.json更新到项目中

4.(重要)在谷歌云端平台OAuth同意屏幕配置,否则使用谷歌登录会报:PlatformException(PlatformException(sign_in_failed,com.google.android.gms.common.api.ApiException:12500:,null)).

https://console.developers.google.com/apis/credentials/consent

(必须用Firebase登录的账号)


登录以后在左上角选择你的项目,选择OAuth同意屏幕,输入应用的名称,图标,和电子邮箱地址,

网页下面还有应用首页链接,应用隐私权政策链接和应用服务条款链接需要配置,只需要用http://加上上面

已获授权的网域即可,点击保存,至此谷歌登录就可以使用了。

下面是谷歌登录的部分代码,仅供参考

import 'package:google_sign_in/google_sign_in.dart';

import 'package:firebase_auth/firebase_auth.dart';


// 谷歌登录
Future<String>  signInWithGoogle() async {

final GoogleSignInAccount googleSignInAccount =await googleSignIn.signIn();

  final GoogleSignInAuthentication googleSignInAuthentication =

await googleSignInAccount.authentication;

  final AuthCredential credential = GoogleAuthProvider.getCredential(

accessToken: googleSignInAuthentication.accessToken,

    idToken: googleSignInAuthentication.idToken,

  );

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

  final FirebaseUser currentUser =await _auth.currentUser();

  return 'signInWithGoogle succeeded: $user';

}

// 退出登录

void signOutGoogle()async {

await googleSignIn.signOut();

  print("User Sign Out");

}

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容