签名打包的Flutter App Bundle/APK无法运行,Firebase Firestore异常
问题原因分析
1. Firebase未配置发布版签名指纹
Firebase服务(含Firestore)会校验应用的签名证书指纹,只有控制台注册过的指纹对应的应用才能正常访问服务。你打包未签名APK时,用的是Android Studio默认调试签名指纹——这个指纹通常在初始化Firebase项目时已自动配置;但打包发布版签名的App Bundle时,用的是自有发布签名证书,对应的SHA-1/SHA-256指纹没添加到Firebase控制台,导致Firestore初始化失败,后续调用相关方法时依赖的实例为null,触发Null check operator used on a null value错误。
2. 发布版构建未更新Firebase配置文件
添加新签名指纹到Firebase控制台后,需要重新下载google-services.json替换项目中/app目录下的对应文件。如果没更新这个文件,发布版构建仍会用旧配置,无法匹配新签名指纹,导致Firestore服务无法正常初始化。
3. 代码未处理Firestore初始化失败场景
你的代码可能默认Firestore实例一定能初始化成功,直接使用了空值断言运算符(!)。当签名不匹配导致初始化失败时,实例为null,此时用!就会触发该错误;而调试版因指纹匹配,实例正常初始化,所以功能正常。
内容的提问来源于stack exchange,提问作者leonardo davila
相关产品推荐
相关产品推荐

