You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何阻止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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.04 06:53:32