使用Google Play Games Services V2登录时如何获取GoogleSignInAccount对象
解决方案:从Play Games Services V2获取GoogleSignInAccount对接Firebase
Play Games Services V2的登录逻辑和旧版有差异,你可以通过以下两种方式获取GoogleSignInAccount对象:
1. 从Play Games登录回调中提取
在Play Games登录成功的回调里,通过返回的登录结果获取凭证,再从中提取GoogleSignInAccount:
// 初始化Play Games登录客户端 GamesSignInClient gamesSignInClient = Games.getGamesSignInClient(getApplicationContext()); gamesSignInClient.signIn() .addOnCompleteListener(task -> { if (task.isSuccessful()) { // 获取Play Games授权凭证 PlayGamesAuthCredential credential = PlayGamesAuthProvider.getCredential(task.getResult().getServerAuthCode()); // 从凭证中获取GoogleSignInAccount GoogleSignInAccount signInAccount = credential.getGoogleSignInAccount(); // 传入Firebase登录方法 firebaseAuthWithPlayGames(signInAccount); } else { // 处理登录失败逻辑 } });
2. 直接获取当前已登录的账号
如果Play Games登录已完成,也可以直接调用Google Sign-In基础库的方法获取当前账号:
GoogleSignInAccount signInAccount = GoogleSignIn.getLastSignedInAccount(getApplicationContext()); if (signInAccount != null) { firebaseAuthWithPlayGames(signInAccount); }
关键注意点
- 确认Firebase控制台已启用Google登录方式,且项目已关联你的Google Play开发者账号。
- 确保AndroidManifest.xml中配置了必要的网络权限,同时Play Games和Firebase的配置文件已正确导入项目。
内容的提问来源于stack exchange,提问作者AnMe3z
相关产品推荐
相关产品推荐

