EditText获取邮箱值被审查,日志无法显示实际内容求助
问题分析与解决方案
你的问题是Firebase Auth的自动敏感信息脱敏机制导致的——Firebase会自动识别日志中的邮箱、手机号等敏感内容,将其替换为星号,即使是你自己通过Log.d打印的内容也会被过滤。注册页未出现该问题,大概率是因为注册页中Firebase Auth的触发时机或日志上下文不同,未触发脱敏逻辑。
以下是几个可行的解决办法:
修改日志输出格式,避开Firebase识别
在打印邮箱时对内容做简单修改,比如替换邮箱的@符号,让Firebase无法识别为标准邮箱格式:Log.d("EMAIL:", email.replace("@", "[at]"));日志会显示类似
xxx[at]domain.com的内容,既能验证输入是否正确,又不会被脱敏。使用System.out代替Log类打印
Firebase的脱敏逻辑仅针对Android官方的Log类,改用System.out.println可以绕过过滤:System.out.println("EMAIL: " + email);输出会在控制台的System.out区域显示,不会被替换为星号。
调整EditText的inputType(可选)
把EditText的inputType改为textEmailAddress,让系统明确这是邮箱输入框,规范输入逻辑的同时,也可能避免部分场景下的误脱敏:<EditText android:id="@+id/email" android:layout_width="wrap_content" android:layout_height="48dp" android:layout_marginVertical="10sp" android:ems="10" android:hint="E-mail" android:inputType="textEmailAddress" />临时关闭Firebase日志脱敏(仅调试用,禁止生产环境)
如果只是调试需要,可以在AndroidManifest.xml中添加配置关闭Firebase的日志脱敏:<meta-data android:name="firebase.log.sensitive_data_filter" android:value="false" />
内容的提问来源于stack exchange,提问作者Aradenta Fareast
相关产品推荐
相关产品推荐

