You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Android集成Firebase实现Facebook登录时提示权限未获用户批准

问题修复步骤

  1. 修复callbackManager变量遮蔽问题
    你在类顶部声明了全局callbackManager,但在onCreate中又用val关键字创建了同名局部变量,导致回调实际绑定到了局部变量,生命周期结束后就失效,无法正确接收登录结果。
    修改onCreate中的初始化代码,去掉val关键字:
// 修改前:val callbackManager = CallbackManager.Factory.create()
// 修改后:
callbackManager = CallbackManager.Factory.create()
  1. 添加Facebook客户端token配置
    日志明确提示v13及以上版本的Facebook SDK必须配置客户端token才能正常调用Graph API,你需要在AndroidManifest.xml的application节点下添加如下配置:
<meta-data
    android:name="com.facebook.sdk.ClientToken"
    android:value="你的Facebook应用客户端token" />

客户端token可在Facebook开发者后台对应应用的「设置-基本」页面获取。

  1. 补全Android 11+包可见性声明
    如果你的应用targetSdkVersion>=30,需要在AndroidManifest.xml的根节点(和application节点平级)添加包可见性配置,否则无法调起Facebook客户端:
<queries>
    <package android:name="com.facebook.katana" />
    <package android:name="com.facebook.orca" />
    <package android:name="com.example.facebook" />
</queries>
  1. 消除事件收集警告(可选)
    如果不需要Facebook的自动事件统计和广告ID收集功能,可以在AndroidManifest.xml的application节点下添加如下配置消除相关警告:
<meta-data
    android:name="com.facebook.sdk.AutoLogAppEventsEnabled"
    android:value="false" />
<meta-data
    android:name="com.facebook.sdk.AdvertiserIDCollectionEnabled"
    android:value="false" />

如果需要使用相关功能,将value改为true即可。

  1. 移除重复权限配置
    你已经给LoginButton设置了读取权限,后续又给LoginManager单独设置了一次相同权限,重复配置可能导致逻辑冲突,保留其中一处即可:要么直接使用LoginButton自带的点击登录逻辑,删除自定义的点击事件;要么不用LoginButton的默认逻辑,完全通过LoginManager触发登录。

  2. 补充onActivityResult回调分发
    你需要在Activity中重写onActivityResult方法,将登录结果传递给callbackManager,否则无法触发登录成功/失败的回调:

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
    callbackManager.onActivityResult(requestCode, resultCode, data)
    super.onActivityResult(requestCode, resultCode, data)
}

如果项目使用了AndroidX的Activity Result API,可以改用Facebook提供的新API注册回调,不需要重写该方法,同时可以消除对应的日志警告。

所有配置修改完成后,先卸载模拟器上的旧应用再重新安装测试,避免缓存的登录状态影响验证结果。

内容的提问来源于stack exchange,提问作者zain mahmood

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 14:15:03