根据公司业务需要集成谷歌登录,自己也是摸索了一天,现将步骤记录如下:(需要将你的Android迁移到Androidx)
1.在自己Flutter项目的.yaml导入插件:
firebase_auth: ^0.14.0
google_sign_in: ^4.0.4
(读者可去pub上自行查阅最新版本)

引入以后记得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");
}