如何阻止Google Play自动创建测试账户污染Firebase Auth?
解决Google Play自动化测试账户污染Firebase Auth的问题
问题背景
我们的Firebase Auth被大量Google Play自动化测试生成的账户污染,每日新增5-10个符合ceceliacook.40913@gmail.com这类格式的测试账户,且这些账户的installerStore均为com.android.vending。已关闭预启动崩溃报告,但Sentry日志仍显示有程序自动启动应用并完成Google登录、创建新账户;联系Firebase支持仅收到FAQ链接,未获有效解决。
可行解决方案
事前拦截:设置Firebase Auth规则过滤非法邮箱
在Firebase控制台的「Authentication -> 规则」中添加邮箱格式校验,直接阻止符合测试账户格式的邮箱创建账户。示例规则如下:rules_version = '2'; service firebase.auth { match /users/{userID} { // 拒绝创建"字母+数字后缀"格式的gmail测试账户 allow create: if !request.resource.data.email.matches(/^[a-zA-Z]+\.\d+@gmail\.com$/); // 保留正常用户的读写权限 allow read, update, delete: if request.auth.uid == userID; } }可根据实际测试账户格式调整正则表达式,确保精准拦截。
客户端登录逻辑添加校验
在App内的Google登录流程中,拿到用户邮箱后先做格式校验,若匹配测试账户模式则直接终止登录流程,不向Firebase提交账户创建请求。以Android为例:val googleAccount = task.result?.account googleAccount?.email?.let { email -> val testAccountPattern = "^[a-zA-Z]+\\.\\d+@gmail\\.com$".toRegex() if (testAccountPattern.matches(email)) { // 拒绝测试账户登录 return@let } // 执行正常的Firebase登录逻辑 firebaseAuth.signInWithCredential(credential) }事后清理+批量阻止
导出Firebase Auth的用户列表,通过脚本批量识别符合格式的测试账户,添加到「Authentication -> 用户 -> 阻止列表」中,防止已创建的测试账户继续操作。检查Google Play Console的测试配置
除预启动报告外,检查Google Play Console中所有测试轨道(内部、封闭、开放)的自动化测试设置:- 关闭「试用体验」中的自动启动配置
- 禁用启动性能、兼容性等可能触发应用启动和登录的自动化测试项
- 确认是否有第三方测试服务绑定到Google Play渠道,导致自动生成测试账户
内容的提问来源于stack exchange,提问作者Coutts
相关产品推荐
相关产品推荐

