Flutter+Firebase开发应用遇非Firebase高额费用,求排查原因
问题背景
我用Flutter和Firebase开发一款移动应用,目前处于开发收尾、即将发布的阶段。最近遇到非Firebase服务费用骤增的情况,之前费用一直很低,自己排查没找到原因。想请教:
- Artifact Registry API是什么?
- 结合提供的依赖包列表和费用截图,帮忙排查费用激增的线索。
费用截图


项目依赖包列表
cupertino_icons: ^1.0.2 go_router: ^4.1.0 cloud_firestore: ^3.3.0 firebase_storage: ^10.3.4 firebase_core: ^1.19.1 flutter_secure_storage: ^5.0.2 # sign_in_with_apple: ^4.0.0 firebase_auth: ^3.7.0 flutter_riverpod: ^1.0.4 google_sign_in: ^5.3.3 flutter_launcher_icons: ^0.9.3 firebase_messaging: ^12.0.1 font_awesome_flutter: ^10.1.0 firebase_core_web: ^1.7.1 google_sign_in_web: ^0.10.2 timeago: ^3.2.2 flutter_app_badger: ^1.4.0 rich_text_controller: ^1.4.0 flutter_calendar_carousel: ^2.4.0 carousel_slider: ^4.1.1 syncfusion_flutter_xlsio: ^20.2.46-beta fl_chart: ^0.55.1 # flutter_html: ^2.2.1 google_mobile_ads: ^2.3.0 timelines: ^0.1.0 range_slider_flutter: ^0.0.2 like_button: ^2.0.5 hive: ^2.2.3 hive_flutter: ^1.1.0 reorderable_grid: ^1.0.5 calendar_view: ^1.0.1 in_app_review: ^2.0.6 flutter_local_notifications: ^13.0.0 timezone: ^0.9.1 flutter_google_places: ^0.3.0 flutter_native_timezone: ^1.1.0 lat_lng_to_timezone: ^0.2.0 cloud_functions: ^3.3.8 device_info_plus: ^8.1.0
解答与排查线索
一、Artifact Registry API 是什么
Artifact Registry是Google Cloud旗下的软件包管理服务,用来存储、管理、分发各类软件包(比如Docker镜像、Maven、npm、Python包等)。Artifact Registry API就是和这个服务交互的接口——比如上传/下载包、查询仓库内容、配置权限等。
在你的Flutter/Firebase开发场景里,它被调用的可能场景:
- 某些第三方依赖的底层需要从Artifact Registry拉取资源
- CI/CD构建流程(比如自动打包、部署)中用到了Google Cloud工具,触发了包的拉取/上传
- 部分Google官方插件在安装或运行时,会间接调用这个API
二、费用激增排查方向
结合你的依赖和费用截图,重点查这几个点:
Google Mobile Ads 插件调用量
你用了google_mobile_ads: ^2.3.0,如果测试阶段频繁请求广告、或者误配置了广告单元导致大量无效请求,可能触发关联的Google Cloud服务费用。去Google Ads控制台检查广告单元的请求日志,确认是否有超出预期的调用量。Syncfusion Xlsio 的关联操作
syncfusion_flutter_xlsio是商业插件,如果你用它频繁生成Excel文件并上传到云存储(比如Firebase Storage),要检查存储的读写次数、文件大小——虽然Firebase Storage属于Firebase,但如果插件内部调用了Google Cloud的其他存储端点,费用会算在非Firebase服务里。Artifact Registry 调用的具体来源
直接去Google Cloud控制台的Artifact Registry页面,查看:- 哪个仓库、哪种类型的包被频繁调用
- 是否有CI/CD流程在自动构建时重复拉取/上传包
- 用
flutter pub deps命令生成依赖树形结构,排查是否有间接依赖Google Cloud Artifact Registry的包
Cloud Functions 的内部调用
cloud_functions虽然属于Firebase,但如果函数内部调用了其他Google Cloud服务(比如Artifact Registry),这部分费用会算非Firebase。去Cloud Functions控制台看日志,检查是否有频繁执行的函数,或者函数内部是否有意外的第三方服务调用。测试阶段的高频操作
开发收尾阶段的集成测试如果有高频操作——比如循环登录登出、批量推送测试、反复调用地点查询(flutter_google_places),都可能触发API调用费用。检查测试脚本或操作流程,是否有不必要的重复请求。
内容的提问来源于stack exchange,提问作者DaegilPyo

