我正在使用google_sign_in插件。
它工作得很好,但我有一个问题。
我需要将idToken发送到后端服务器以验证用户。
但是IdToken在Google Sign响应中为null。
代码很简单
final GoogleSignInAccount googleUser = await _googleSignIn.signIn();
final GoogleSignInAuthentication googleAuth =
await googleUser.authentication;
print("Printing google user info");
print(googleAuth.accessToken);
print(googleAuth.idToken);
print(googleUser.displayName);
其他属性具有正确的值。但idToken为null
我在谷歌上搜索了一下,说我需要网络客户端ID。
所以我做了final _googleSignIn = GoogleSignIn(clientId: webClientId);
你们能帮忙吗?
我错过什么了吗?
3条答案
按热度按时间9avjhtql1#
我面对这个问题两天了,最后。(在我的情况下)这个解决方案奏效了。
https://firebase.flutter.dev/docs/installation/android#installing-your-firebase-configuration-file
com.google.gms:google-services
作为依赖项添加到android/build.gradle
中apply plugin: 'com.google.gms.google-services'
添加到/android/app/build.gradle
中juud5qan2#
在尝试对用户进行身份验证之前,必须像下面这样指定作用域
然后可以请求用户进行身份验证。要获取isToken,请调用此方法
如果你已经在云控制台中正确配置了项目,你应该没有问题地获得ID
js4nwp543#
对我来说,我从firebase项目中删除了谷歌登录提供程序(完全删除而不是禁用它),并删除了所有未使用的oauth 2.0服务,包括web应用程序,然后重新启用谷歌登录提供程序,并使用flutter-fire重新初始化firebase项目,它应该工作