Firebase Auth短信登录报错:Token mismatch(invalid-app-credential)
Firebase Auth手机号登录Token mismatch错误排查方案
以下是针对你遇到的Token mismatch错误的具体解决步骤:
核对Firebase项目签名指纹
登录Firebase控制台,进入项目设置的"通用"标签,检查Android/iOS平台下的SHA-1、SHA-256指纹是否和你当前应用构建使用的签名证书一致。调试版和发布版的指纹都要添加,缺少或错误的指纹会直接导致token验证不匹配。规范手机号格式
确保传入phoneNumber参数的字符串严格遵循E.164标准,例如+8613800138000,必须包含国际区号,不能有空格、括号等额外字符。格式错误会引发验证流程中的token生成异常。清除本地缓存并重启应用
本地缓存的旧验证token可能和服务器端数据冲突,尝试清除应用的缓存数据,完全关闭应用后重新启动,再发起登录请求。升级Firebase Auth依赖
检查pubspec.yaml中firebase_auth的版本,升级到最新稳定版。旧版本插件可能存在已知的token匹配逻辑bug,升级后通常能解决这类问题。正确使用重发验证码的token
如果需要重新发送短信验证码,必须使用codeSent回调返回的resendToken参数,示例代码如下:await _firebaseAuth.verifyPhoneNumber( phoneNumber: phoneNumber, timeout: const Duration(seconds: 60), verificationCompleted: (credential) async { // ... 现有逻辑 }, verificationFailed: (FirebaseAuthException error) { // ... 现有逻辑 }, codeAutoRetrievalTimeout: (String verificationId) { // ... 现有逻辑 }, codeSent: (verificationId, resendToken) { // 保存resendToken用于后续重发 this.resendToken = resendToken; }, forceResendingToken: this.resendToken, // 重发时传入保存的token );打印完整错误信息排查
在verificationFailed回调中打印详细错误信息,方便定位具体问题:verificationFailed: (FirebaseAuthException error) { print('错误代码: ${error.code}'); print('错误描述: ${error.message}'); },根据输出的错误代码(如
invalid-token、operation-not-allowed等),可以更精准地排查问题。
内容的提问来源于stack exchange,提问作者Brosna Chhean
相关产品推荐
相关产品推荐

