当前位置: 首页 > news >正文

Cocos使用firebase C++ SDK实现google登录

目录

  • 前置工作
    • 在控制台Auth中加入谷歌登录
    • 下载最新的google-services
    • 配置sha1值
  • 在Android原生平台向Google请求token
    • 按照官方流程引入依赖
    • 在AppActivity同级目录下新建一个Cyy.java(免得污染AppActivity)
    • 完成上述代码后,会提示jdk版本低,根据提示将cocos的jdk版本改为17
    • 在js脚本对应位置处理由JSB传递过来的消息
    • 调试一下看RegisterNativeBridge()能否正确接收到token
  • 使用C++处理拿到google登录凭证后的步骤
    • 看看前面代码中的firebase.onGoogleLoginSuccess(arg1)是否能正确执行
  • 遇到过的问题
    • google登录时报28433错误:
    • 控制台输出没有内容

前置工作

在控制台Auth中加入谷歌登录

下载最新的google-services

配置sha1值

在Android原生平台向Google请求token

原生代码部分,参考
1.Developers使用Google账号登录功能对用户进行身份验证
2.Firebase-Android-使用google账号登录

按照官方流程引入依赖

implementation(platform("com.google.firebase:firebase-bom:33.15.0"))implementation("com.google.firebase:firebase-auth")implementation"androidx.credentials:credentials:<latest version>"implementation"androidx.credentials:credentials-play-services-auth:<latest version>"implementation"com.google.android.libraries.identity.googleid:googleid:<latest version>"

在AppActivity同级目录下新建一个Cyy.java(免得污染AppActivity)

packagecom.cocos.game;importstaticcom.google.android.libraries.identity.googleid.GoogleIdTokenCredential.TYPE_GOOGLE_ID_TOKEN_CREDENTIAL;importandroid.annotation.SuppressLint;importandroid.os.Bundle;importandroidx.annotation.NonNull;importandroidx.credentials.Credential;importandroidx.credentials.CredentialManager;importandroidx.credentials.CredentialManagerCallback;importandroidx.credentials.CustomCredential;importandroidx.credentials.GetCredentialRequest;importandroidx.credentials.GetCredentialResponse;importandroidx.credentials.exceptions.GetCredentialException;importcom.cocos.lib.JsbBridge;importcom.google.android.libraries.identity.googleid.GetGoogleIdOption;importcom.google.android.libraries.identity.googleid.GoogleIdTokenCredential;importcom.google.firebase.auth.FirebaseAuth;importcom.google.firebase.auth.FirebaseUser;importjava.util.concurrent.Executors;publicclassCyy{publicstatic
http://www.jsqmd.com/news/598739/

相关文章:

  • 终极实战指南:Godot PCK解包器深度解析与高效资源提取
  • 如何快速开始Cucumber.js:新手5步搭建第一个BDD测试项目
  • 学习日记
  • 2026年4月6日响课科技创始人李波首次披露响课GEO系统获多行业验证,无需专属技术团队也能高效实现全域流量占位 - 速递信息
  • Keil MDK调试时Watch窗口变量不刷新?别急,这3个设置项你检查了吗?
  • IDMPhotoBrowser:iOS开发者的终极照片浏览器解决方案
  • A*算法保姆级教程:从原理到Python实现,5分钟搞定最短路径问题
  • 基于粒子群的PMU优化配置 软件:MATLAB 介绍:电力系统PMU优化配置,为了使电力系统达...
  • 深入剖析watchdog机制:从soft lockup到Hard LOCKUP的检测与应对
  • 终极TinyColor升级指南:从1.5到1.6版本的关键变更与迁移策略
  • web随笔04
  • Koa2调试终极指南:10个高效定位代码问题的技巧
  • 避坑指南:Ecology9流程创建失败的7个常见错误及解决方案(附调试技巧)
  • 效率提升利器:快马一键生成网络配置脚本与故障排查模拟环境
  • 终极优化指南:如何彻底解决腾讯游戏ACE-Guard导致的系统卡顿问题
  • 移动端H5开发 app内嵌H5谷歌浏览器Windows/Mac调试方法 各种连接问题解决
  • Oh-My-Posh 多会话管理终极指南:在不同终端中保持一致的完美体验
  • Godot引擎资源提取完全指南:从PCK文件到游戏资产
  • 2026年南京全屋定制生产厂家深度测评:如何为你的家居定制匹配最佳方案? - 速递信息
  • Windows 11上运行Android应用的3大核心优势:WSA完全指南
  • obsidian-skills投资者管理:高效管理投资者关系的终极指南
  • 5种任务栏透明方案:TranslucentTB视觉增强完全指南
  • 微信指数数据还能这么用?Python抓取后做竞品分析与市场洞察实战
  • 智能值守:直播内容智能捕获系统的技术突破与实践指南
  • ‌智慧校园软件怎么选?手把手教你看懂核心功能
  • 农产品销售系统|基于Java + vue农产品销售系统(源码+数据库+文档)
  • 终极指南:如何使用snabbt.js创建惊艳的Web动画效果
  • Applio插件系统详解:如何扩展你的语音转换能力
  • Lisk SDK安全最佳实践:保护区块链应用免受攻击的10个技巧
  • 3大价值+5步实施:基于Vant Weapp的无障碍设计全流程指南