Unity:Firebase接入Google登录
Unity:Firebase接入Google登录
- 开启Firebase的登录方式
- 问题小结
- Google登录代码
- 调用登录代码
- 参考文章:
此文章只是粗浅之作,记录而已,有错望指出,不胜感激
开启Firebase的登录方式
进入Firebase控制台==>Authentication ==> Sign-in method ==>Google
设置项目名称,邮件,
最主要的是设置Web SDK配置
这个Web客户端ID是首先在Google配置之后自动分发的,在以下网址配置:
配置谷歌应用信息
选择你的项目:
填写你的包名,keystore的SHA1值
将这个给你的Client ID填写到Firebase中,同时,在代码的初始化中也填写这个Client ID
问题小结
1、当我把Signin的Unity的包导入项目后发现自己的部分代码不能用了,可以把Parse文件删除再重新导入,这部分在后面的参考文章处有。2、DllNotFoundException: Unable to load DLL ‘native-googlesignin’: The specified module could not be found.
在项目中进入到GoogleSignIn\Editor\m2repository\com\google\signin\google-signin-support\1.0.4目录中,将所有后缀为.srcaar的文件更改为后缀.aar,也就是说把"src”删除即可,参考网址在后面
3、当我用IOS登录时调用了Google的登录页面,有显示选择Google账户,但是之后就再无反应,不清楚是哪里的问题,后面查资料有说是因为在2021年初Google禁止了网页的登录请求,所以导致IOS的Google登录已经无法使用了,我这边就没有继续下去,如果有大佬知道原因,希望给出指点!
ok,这样就可以登录到Google了
Google登录代码
using Firebase.Auth;
using Google;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Threading.Tasks;
using UnityEngine;/// <summary>
/// 谷歌登录
/// </summary>
public class GoogleLoginManager : SingleTon<GoogleLoginManager>
{string idToken;TaskCompletionSource<FirebaseUser> signInCompleted;FirebaseAuth auth;public bool IsInit{get => GoogleSignIn.Configuration != null;}/// <summary>/// 谷歌登录初始化配置/// </summary>public void Init(){GoogleSignIn.Configuration = new GoogleSignInConfiguration{RequestIdToken = true,// Copy this value from the google-service.json file.// oauth_client with type == 3//填入在配置谷歌项目SHA1值时给你的Client IDWebClientId = "*******************************************"};}/// <summary>/// 谷歌登录/// </summary>public void Login(Action<bool> action = null){Debuger.Log("Enter Google Script Login Method");Task<GoogleSignInUser> signIn = GoogleSignIn.DefaultInstance.SignIn();signInCompleted = new TaskCompletionSource<FirebaseUser>();signIn.ContinueWith(task =>{if (task.IsCanceled){signInCompleted.SetCanceled();}else if (task.IsFaulted){signInCompleted.SetException(task.Exception);}else{idToken = ((Task<GoogleSignInUser>)task).Result.IdToken;auth = Firebase.Auth.FirebaseAuth.DefaultInstance;action?.Invoke(true);}});}/// <summary>/// 谷歌登录到Firebase/// </summary>/// <param name="action"></param>public void LoginToFirebase(Action<string> action){if (signInCompleted == null || string.IsNullOrEmpty(idToken) || auth == null){return;}Credential credential = Firebase.Auth.GoogleAuthProvider.GetCredential(idToken, null);auth.SignInWithCredentialAsync(credential).ContinueWith(authTask =>{if (authTask.IsCanceled){if (LoginResultManager.Instance != null)LoginResultManager.Instance.OpenLoginResult(false);signInCompleted.SetCanceled();}else if (authTask.IsFaulted){if (LoginResultManager.Instance != null)LoginResultManager.Instance.OpenLoginResult(false);signInCompleted.SetException(authTask.Exception);}else{signInCompleted.SetResult(((Task<FirebaseUser>)authTask).Result);Firebase.Auth.FirebaseUser newUser = authTask.Result;Debuger.Log(String.Format("User Login Successful : {0} ({1})", newUser.DisplayName, newUser.UserId));action?.Invoke(newUser.UserId);}});}
}
调用登录代码
GoogleLoginManager.Instance.SignIn((isLogin) =>{if (isLogin){GoogleLoginManager.Instance.LoginToFirebase((UserId) =>{//登录到Firebase后的操作});}else{Debuger.LogError($"Login is Fail");}});
参考文章:
GitHub社区,介绍的也比较详细了
链接: https://github.com/googlesamples/google-signin-unity
导入Signin的Unity包时报错
链接: https://github.com/googlesamples/google-signin-unity/issues/140
Firebase接入Google的官方指导网址:
链接: https://firebase.google.com/docs/auth/unity/google-signin?authuser=0
DllNotFoundException:无法加载DLL’native-googlesignin’:找不到指定的模块:
链接: https://github.com/googlesamples/google-signin-unity/issues/106
Unity:Firebase接入Google登录相关推荐
- Unity:Firebase接入Apple登录
Unity:Firebase接入Apple登录 开启Firebase的登录方式 设置Apple的后台信息 从Assets Store下载 Singn In With Apple Xcode设置 添加A ...
- Unity接入Google登录
Unity接入Google登录 接入FireBaseSdk和GoogleSignIn插件 FireBase接入文档 GoogleSignIn 编写登录代码 可能出现的问题 运行时弹出Google登录界 ...
- unity中接入Google Play SDK
参考: Google Play Games plugin for Unity: https://github.com/playgameservices/play-games-plugin-for-un ...
- iOS接入Google登录
目录 1.在Google Cloud后台配置客户端ID 2.iOS配置URL Types编辑 3.代码实操 1.在Google Cloud后台配置客户端ID 首先要在 Google Cloud 中创 ...
- 接入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 ...
- 【unity】Google 登录和Google支付接入unity
公司项目需要上线谷歌商店,因为某些原因不得不接手SDK接入的任务.然而作为一个菜鸡,实在是有点难为我了,磨磨唧唧搞了半个月才搞好.感谢老大的宽容. 目录 Google 登录 Google Play G ...
- 【IOS】Firebase(Google、Facebook、Apple、Guest)登录,FCM,Apple In-App,Kakao
写在开头 记录自己接入SDK的过程.请各位指正. 最好提前做的工作 工欲善其事,必先利其器. 1.Mac电脑因Xcode而内存越来越大 弄到一半突然提示我内存不足,而且xcode还越来越卡.也是醉了. ...
- 教你接入Google谷歌支付V3版本,图文讲解(Android、Unity)
文章目录 一.前言 二.Google支付官方文档 三.Google支付Github Demo工程 四.Google支付流程图 五.Google支付接口讲解 1.初始化(监听支付事件) 2.连接Goog ...
最新文章
- 三星 arm9 linux,基于arm9内核三星s3c2410平台下linux四键按键驱动程序
- 查看端口被哪个进程占用
- 【学术相关】谈谈国自然申请中标的经验
- java处理高并发高负载类网站的优化方法
- linux下storm集群配置,Twitter Storm 系统集群搭建
- T级内存,创建效率提升10倍以上,阿里云 KVM异构虚拟机启动时间优化实践
- 程序员数学基础【二、时间复杂度】(Python版本)
- thinkphp项目mysql类关系_ThinkPHP数据库与模型
- c 语言 realloc 源码,C语言,realloc
- Java学习总结(随笔)——利用JSON解析实现网络下载
- 渗透测试岗位面试题(渗透思路)
- C++内存分配方式、内存错误及其对策
- win10计算机护眼,win10系统设置护眼模式的三种方法
- 静态页面通过AJAX+asp实现数据查询功能
- ICCV 2021 | Transformer结合自监督学习!Facebook开源DINO
- VB.NET合并图片
- php access 会员管理,Member access operators(会员接入运营商)
- 设计1-腾讯设计导航
- 解决Ubuntu 18.04-Ubuntu 22.04中文输入法安装依赖的问题,成功安装搜狗拼音
- 面试紧张不善于表达该怎么解决?
热门文章
- 鲁大师7月新机性能榜:第一名有些意外!
- 企业怎么写出一篇优质的软文稿件
- 7-5 交换最小值和最大值
- c#实现将Excel文件导出为csv和UTF8格式的txt文件
- Java多线程和多进程的优缺点
- 华为m2android怎么升级,【刷机指导】华为平板M2 8 EMUI4.0回退EMUI3.1指导教程
- Python+pandas +画出股票的收盘价的趋势图(笔记)
- 玩转TM4C1294XL(5)——PWM配置(死区互补输出)
- docker运行linux桌面,「Linux」- 在 Docker 中,运行桌面应用(以向日葵远程客户端为例)...
- 饥荒机器人雷击_饥荒机器人雷击多次_饥荒机器人周围东西总被雷劈科技机器经常刚做好就被雷劈了烧掉了_滁州气象...