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

Flutter iOS端Facebook登录后Firebase认证报invalid-credential错误求助

iOS端Facebook-Firebase认证invalid-credential问题排查方案

以下是针对你遇到的iOS端可完成Facebook登录,但Firebase调用signInWithCredential报invalid-credential(Bad access token)问题的排查和修复步骤:

1. 核对Facebook开发者后台iOS平台配置

  • 确保Bundle ID与iOS项目的Bundle Identifier完全一致(大小写敏感,不能有任何拼写错误)
  • 检查是否已在Facebook后台添加iOS平台,并生成/配置正确的iOS密钥(路径:Facebook开发者后台 > 应用 > 设置 > 基本 > 添加平台 > iOS)
  • 开启单点登录功能(路径:Facebook开发者后台 > 产品 > Facebook登录 > 设置 > iOS > 单点登录 设为“开启”)

2. 验证Firebase后台的Facebook认证配置

  • 确认Firebase控制台中Facebook认证模块的应用ID和应用密钥,与Facebook后台的对应值完全匹配
  • 检查Firebase的Facebook认证设置中,是否已添加iOS项目的Bundle Identifier(即使Android正常,iOS可能未单独配置)

3. 修正Info.plist配置细节

  • 在LSApplicationQueriesSchemes数组中添加fb{你的APP ID}(当前仅包含fbauth2,缺少这个会影响令牌验证),修改后示例:
    <key>LSApplicationQueriesSchemes</key>
    <array>
      <!-- 其他原有scheme -->
      <string>fbauth2</string>
      <string>fb{你的APP ID}</string>
    </array>
    
  • 确认CFBundleURLSchemes中的fb{你的APP ID}无拼写错误、多余空格或特殊字符
  • 添加FacebookAutoLogAppEventsEnabled键并设为true(部分场景下会影响令牌有效性):
    <key>FacebookAutoLogAppEventsEnabled</key>
    <true/>
    

4. 检查访问令牌的有效性与权限

  • 确保Facebook登录请求的权限包含public_profile和email(Firebase认证依赖这些基础权限),示例代码:
    final LoginResult result = await FacebookAuth.instance.login(
      permissions: ['public_profile', 'email'],
    );
    
  • 打印并验证获取的访问令牌信息,确认applicationId与你的Facebook App ID一致:
    final accessToken = await FacebookAuth.instance.accessToken;
    if (accessToken != null) {
      print('Token App ID: ${accessToken.applicationId}');
      print('Token Expires: ${accessToken.expires}');
    }
    

5. 清理缓存并重新构建

  • 删除iOS项目的Derived Data(Xcode > 菜单栏 > Product > Clean Build Folder)
  • 执行pod deintegrate && pod install清理并重新安装Pod依赖
  • 卸载设备上的应用后重新运行

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 18:12:47