Flutter集成Firebase手机号认证时遇[firebase_auth/invalid-verification-is]错误
解决Flutter Firebase手机号认证「firebase_auth/invalid-verification-id」移动端错误
检查Verification ID的传递一致性
移动端在verifyPhoneNumber的codeSent回调中获取的verificationId必须原封不动传递给PhoneAuthProvider.credential方法,不能做trim、大小写转换或其他格式修改。Web端可能自动兼容了一些格式问题,但移动端对字符串的一致性要求更严格,任何篡改都会触发该错误。避免超时或重复请求
Firebase验证码的有效期为5分钟,超时后使用旧的Verification ID会直接报错。同时要确保每次验证流程只调用一次verifyPhoneNumber生成ID,不要重复发起请求导致多个ID混淆。核对移动端Firebase配置文件
确认Android的google-services.json和iOS的GoogleService-Info.plist是从Firebase控制台下载的最新版本,且与Web端属于同一项目:- Android:检查
oauth_client中的包名、SHA-1/SHA-256指纹是否正确匹配你的应用 - iOS:检查
GoogleService-Info.plist中的BUNDLE_ID是否与Xcode项目的Bundle ID一致
- Android:检查
适配Flutter与Firebase Auth版本
Flutter 3.3.2对应的firebase_auth插件可能存在移动端特定的兼容性问题,建议升级到适配该Flutter版本的稳定插件版本,执行命令:flutter pub upgrade firebase_auth升级后重新构建项目,验证问题是否解决。
修正设备时间设置
若移动端设备的系统时间或时区与实际时间偏差过大,会导致验证码验证逻辑失效。建议用户将设备时间设置为自动同步状态。
内容的提问来源于stack exchange,提问作者ashar mehmood
相关产品推荐
相关产品推荐

