React Native Google/Facebook登录配置报错求助
Google登录错误排查(Request is missing required authentication credential)
可能原因及解决步骤
OAuth客户端ID配置错误
- 打开Google Cloud控制台,确认Android/iOS的客户端ID对应正确的SHA-1指纹(debug和release环境都需配置)、Bundle ID,不要使用Web类型的客户端ID。
- 重新下载
google-services.json(Android)或GoogleService-Info.plist(iOS),替换项目中对应文件,确保配置与控制台一致。
未正确获取/传递Access Token
- 检查登录代码,确保调用登录接口后正确获取
accessToken或idToken。例如使用@react-native-google-signin/google-signin时:const userInfo = await GoogleSignin.signIn(); // 确保拿到token后再发起后续请求 const { idToken } = userInfo.data; - 确认后续请求(如Firebase认证或后端接口)中正确携带了该token。
- 检查登录代码,确保调用登录接口后正确获取
登录流程不完整
确保登录流程完整执行,未跳过OAuth授权步骤。调用signIn()后需等待Promise完成,正确处理返回的用户信息,避免在token未获取时发起请求。
Facebook登录错误排查
错误1:undefined is not an object (evaluating'_ExponentFacebook.default.InitializeAsync')
- 模块环境不匹配
- 如果是裸React Native项目,不要使用
expo-facebook模块,改用react-native-fbsdk-next。 - 若是Expo项目,确认已执行
expo install expo-facebook,且导入语句正确:import * as Facebook from 'expo-facebook'; - Expo项目需在
app.json中添加Facebook配置:"facebook": { "appId": "你的Facebook App ID", "scheme": "fb你的Facebook App ID" }
- 如果是裸React Native项目,不要使用
错误2:TypeError: null is not an object (evaluating 'LoginManager.logInWithPermissions')
- 原生模块未正确链接/初始化
- 裸项目需确认
react-native-fbsdk-next安装完成:iOS执行cd ios && pod install,Android同步Gradle文件,RN 0.60+自动链接,但需检查原生配置是否齐全:- Android:在
strings.xml中添加Facebook App ID和DisplayName,AndroidManifest.xml中配置Activity和权限。 - iOS:在
Info.plist中添加CFBundleURLSchemes(包含fb{appId})、FacebookAppID、FacebookDisplayName等键值对。
- Android:在
- 确保导入语句正确:
import { LoginManager, AccessToken } from 'react-native-fbsdk-next'; - 结合Firebase时,需在Firebase控制台启用Facebook登录,填入正确的Facebook App ID和App Secret,同时确认
react-native-firebase/auth已正确安装并初始化。
- 裸项目需确认
内容的提问来源于stack exchange,提问作者Nicolas
相关产品推荐
相关产品推荐

