带有URL的Firebase崩溃日志

时间:2017-09-11 14:59:33

标签: android firebase firebase-crash-reporting

我们目前在我们的应用中使用Firebase崩溃报告 - 我们注意到一些奇怪的事情。为了帮助我们调试任何崩溃,我们使用FirebaseCrash.log添加有关服务器请求/响应的信息。

但是最近,我们注意到日志正在被编辑。从我们可以看出,这发生在服务器端,给我们留下如下所示的日志:

  

7:51:11.914 AM   gmp_nav20_crash   < - 201 https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC](287毫秒,未知长度的身体)

     

7:51:11.626 AM   gmp_nav20_crash    - > POST https://[REDACTED_DOMAIN_NAME][REDACTED_URL_BASIC] http / 1.1(67字节正文)

我们是否有办法至少在某些域名中禁用此功能?它可以准确地追踪出现问题的难度,并且没有为我能看到的用户提供任何有意义的保护。

2 个答案:

答案 0 :(得分:3)

由于上面的评论显示这是不可配置的,并且您希望结果可以从Firebase控制台读取,因此我建议以一种混淆URL的方式处理URL,同时保留其可读性。请确保您只对非敏感信息做到这一点 - 特别是如果您在欧洲有新的GDPR规定。

可能很简单:

url.replaceAll("\\.", "[dot]");

但我建议屏蔽协议(也许是斜线)

url.replaceAll("https://", "[secure]")
   .replaceAll("http://", "")
   .replaceAll("\\.", "[dot]");

修改(要回答赏金问题:“根据Firebase政策跟踪Base64编码的网址和域名是否合法?”)

根据Firebase Policies页面

  

除非您有强烈的通知,并且用户事先肯定(即选择加入)同意,否则您不会将个人身份信息与非个人身份信息合并。

假设您没有征得同意,我认为您还应该从网址中删除任何查询或可识别信息。

同样,这可能就像在第一个或最后一个斜线(如果存在)处拆分字符串一样简单,这取决于网址的哪些部分对您很重要

答案 1 :(得分:1)

将URL字符串转换为base64字符串并发送编码字符串

        public static String toBase64(String stringToEncode){
        String base64 = null;
        try {
            byte[] data = stringToEncode.getBytes("UTF-8");
            base64 = Base64.encodeToString(data, Base64.DEFAULT);
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return base64;
    }

FirebaseCrash.report(new Exception("Error while downloading image with URL (Base 64 encoded):" + StringUtils.toBase64(s)));