Unity接入Google登录
Unity接入Google登录
- 接入FireBaseSdk和GoogleSignIn插件
- FireBase接入文档
- GoogleSignIn
- 编写登录代码
- 可能出现的问题
- 运行时弹出Google登录界面,选了账号后没有反应
- 出现DllNotFoundException: native-googlesignin
- 参考
- 2022.7.18 踩坑记录
接入FireBaseSdk和GoogleSignIn插件
FireBase接入文档
https://firebase.google.com/download/unity?authuser=0
接入FireBase时,FirebaseAuth.unitypackage必须接入,这是使用FireBase进行身份验证的入口
GoogleSignIn
https://github.com/googlesamples/google-signin-unity
编写登录代码
public FirebaseAuth auth;// Start is called before the first frame updatevoid Start(){GoogleSignIn.Configuration = new GoogleSignInConfiguration(){RequestIdToken = true,//此处填写从FireBase控制台上下载的配置文件中client_id client_type == 3 的 oauth的值WebClientId = ""};}private void OnGUI(){if (GUI.Button(new Rect(2000,300,100,100), "Google")){Debug.Log("GoogleLogin()");auth = FirebaseAuth.DefaultInstance;Task<GoogleSignInUser> signIn = GoogleSignIn.DefaultInstance.SignIn();signIn.ContinueWith(task =>{if (task.IsCanceled){Debug.Log("signIn.ContinueWith Login cancel");}else if (task.IsFaulted){Debug.Log("signIn.ContinueWith Login error : " + task.Exception.Message);}else{var result = ((Task<GoogleSignInUser>) task).Result;Credential credential =Firebase.Auth.GoogleAuthProvider.GetCredential(result.IdToken,null);auth.SignInWithCredentialAsync(credential).ContinueWith (authTask => {if (authTask.IsCanceled) {Debug.LogError("SignInWithCredentialAsync was canceled.");} else if (authTask.IsFaulted){Debug.LogError("SignInWithCredentialAsync encountered an error: " + authTask.Exception);} else{Debug.Log("Login Google success");FirebaseUser newUser = authTask.Result;Debug.Log("userid:" + newUser.UserId + " koTen:");newUser.TokenAsync(false).ContinueWith((t) =>{var toKen = t.Result;Debug.Log("toKen=" + toKen);string info = newUser.UserId + "/" + toKen;});}});}});}}
注意:webClient必须要有值,填写值为FireBase控制台上下载的配置文件中client_type == 3 的 oauth的值
可能出现的问题
运行时弹出Google登录界面,选了账号后没有反应
测试时使用国内机无法登录,在android studio中查看日志会看到有报错
Failed to validate DexClassLoader. java.lang.ClassNotFoundException: Didn’t find class “com.google.android.gms.chimera.DynamiteModuleInitializer”
但是使用XiaoMi 9T海外机时可以正常登录,可能时因为Play服务版本问题造成
出现DllNotFoundException: native-googlesignin
不使用package包导入,下载github上的demo用例,直接把用例上的文件复制粘贴过来
参考
https://firebase.google.com/docs/auth/unity/google-signin?hl=zh&authuser=0
https://github.com/googlesamples/google-signin-unity
https://blog.csdn.net/Good_V/article/details/114528453
2022.7.18 踩坑记录
如果项目是用了多线程,那么原本登录时调用的 ContinueWith 需要改为 ContinueWithOnMainThread ,只在主线程调用,例如
如果有做Google Play服务检查,那么要在检查完毕后再调用FireBase的登录接口
检查Google Play服务代码
Firebase.FirebaseApp.CheckAndFixDependenciesAsync().ContinueWith(task =>{var dependencyStatus = task.Result;Debug.Log("result--->" + dependencyStatus);//在这里可以添加一个标记,表示已经完成检查//checkOver = trueif (dependencyStatus == Firebase.DependencyStatus.Available){//检查成功后需要做的事}else{UnityEngine.Debug.LogError(System.String.Format("Could not resolve all Firebase dependencies: {0}", dependencyStatus));}});
Unity接入Google登录相关推荐
- Unity:Firebase接入Google登录
Unity:Firebase接入Google登录 开启Firebase的登录方式 问题小结 Google登录代码 调用登录代码 参考文章: 此文章只是粗浅之作,记录而已,有错望指出,不胜感激 开启Fi ...
- Unity接入Google Play遇到Authentication canceled
Unity接入Google Play遇到Authentication canceled 最近在做接入google play的活,环境是Unity2018.4.0f,使用 GooglePlayGames ...
- unity 接入 Facebook 登录
Unity 接入 Facebook 登录 Unity 接入 Facebook 登陆 使用unity sdk 到这 https://developers.facebook.com/docs/unity/ ...
- 【unity】Google 登录和Google支付接入unity
公司项目需要上线谷歌商店,因为某些原因不得不接手SDK接入的任务.然而作为一个菜鸡,实在是有点难为我了,磨磨唧唧搞了半个月才搞好.感谢老大的宽容. 目录 Google 登录 Google Play G ...
- Unity 接入Apple登录
文章末尾有资源插件链接 在6月的全球开发者大会(WWDC)上,苹果宣布了一款新产品:使用苹果登录.随着iOS 13即将于9月19日发布,苹果已经更新了App Store审查指南,现在他们要求任何使用第 ...
- iOS接入Google登录
目录 1.在Google Cloud后台配置客户端ID 2.iOS配置URL Types编辑 3.代码实操 1.在Google Cloud后台配置客户端ID 首先要在 Google Cloud 中创 ...
- Unity接入Google广告(AdMob)
打开官网文档: https://developers.google.com/admob/unity/start?hl=zh-CN 先进行注册,自己创建一个应用便可以获取到应用ID 3.将Unity的插 ...
- 接入google 登录 google oauth2
注册谷歌账号 去创建 一个app设置的 url 访问 一定要和第二步中的http://www.newplat.com/google/googleLogin 一致 demo : https://deve ...
- (unity)新手接入Facebook登录,分享以及google登录,Android,IOS,OC接入篇
最近接Android,IOS的Facebook登录,分享 以及Google登录,分享流程以及遇到的问题整理. 一. Android接入 google登录 第一步,前往 [ firebase] http ...
最新文章
- iOS base64 MD5
- 健身也内卷?这届网友用 Python 掌握了做标准俯卧撑的秘诀
- 【错误记录】Google Play 上架报错 ( 您还没有为此轨道选择任何国家或地区。至少要添加 1 个国家或地区才能发布此版本)
- python手机app 授权登录_Appium+unittest+python登录app
- spring源码研究
- 关于Panel隐藏横向滚动条
- Chap2-构造函数语意学
- java gui 按键 数组_java GUI分配数组值
- web.xml.jsf_面向初学者的JSF 2.0教程
- 制作jffs2根文件系统
- 【STM32】HAL库 STM32CubeMX教程十五---FMC-SDRAM(二)
- SeleniumCSS选择器
- centos6.6安装中文支持
- 火星开发的价值_发现“火星”岩石密度比预想更低,火星探测开发的“九大价值”...
- 幼儿园数学目标_幼儿园数学区目标
- mysql 字段名 减号_MySQL减号
- 计算机 未保存,电脑突然关机wps没保存怎么办
- 移动磁盘数据错误循环冗余检查的文件找回方法
- 编程入门先学python好不好,学python用什么软件编程
- mysql emoji表情 保存utf8mb4 错误原因总结
热门文章
- Latex Tips: 如何输入矩阵(illustrated in Jupyter Notebook)
- CAD图纸无法复制粘贴该怎么办?
- Larry wall - Perl之父
- 在网络安全领域,比较牛的中国黑客有哪些?
- 中兴通讯某产品大规模敏捷转型实践
- appollo-参考线平滑设定
- 常规放大电路和差分放大电路
- ASCII表完整版(包含16进制对应表)——看看16进制与10进制的转化
- Hadoop -- hadoop介绍
- freemarker html 换行,java使用freemarker模板导出word,合并单元格,单元格内换行