使用Firebase解决问题

使用Firebase解决问题

一、Firebase引入

1.1 Firebase(Google)账号注册
1.2 创建项目

1.进入firebase官网,点击创建项目,直到创建完成;
在这里插入图片描述在这里插入图片描述在这里插入图片描述
2.创建完成后,点击项目首页中的Android;在这里插入图片描述
3.将Firebase引入Android项目中;
4.填入Android包名,也就是在项目级的build.gradle文件中的android-defaultConfig-applicationId;
在这里插入图片描述
5.下载google-services.json引入项目级配置中;
6.添加Crashlytics的SDK,按照教程操作;
在这里插入图片描述
在这里插入图片描述
7.将Crashlytics SDK添加到应用;
8.将Crashlytics Gradle插件添加到应用;
在这里插入图片描述

9.打包运行项目,Firebase即引入项目中;

二、Firebase面板

Crash-free users: crash的用户比例,而非crash次数的比例;

Crashes: crash的次数;

Non-fatals: 非致命问题的次数;

Custom: 选择查看问题的时间段;

Issues: 出现的问题统计;

Stack trace: 问题发生的原因,以及位置;

Logs: 问题发生的日志,包括埋点;

Data: 问题发生的设备、时间、用户、内存等信息;

三、使用Firebase进行问题分析

3.1 使用crashlytics记录报错信息

1.在代码中引入crashlytics;

import crashlytics from '@react-native-firebase/crashlytics';

2.使用crashlytics.recordError()方法在crashlytics中输出错误的日志;

​ 定义js的报错处理和native的报错处理,传给react native的setJSExceptionHandler和setNativeExceptionHandler方法;

​ 当react native报错时,就会按照定义的方式处理并传到crashlytics;

import {setJSExceptionHandler, setNativeExceptionHandler} from 'react-native-exception-handler';
const exceptionhandler1 = (error, isFatal) => {
  if(error){
    crashlytics().recordError(error, "js Error");
  }
};
setJSExceptionHandler(exceptionhandler1, true);

const exceptionhandler2 = exceptionString => {
  crashlytics().recordError(exceptionString, "react native Error");
};
setNativeExceptionHandler(exceptionhandler2, true, false);
3.2 问题分析(实例)

实在是不便贴图…如果有问题可以私信…
1.收到问题
实例:收到客户反馈的问题;

2.分析问题
实例:根据客户反馈的截图,客户发生错误的时间为11月17日上午8.28分,可以在Firebase中根据这一事件查找这一类型的问题;

3.查找问题
实例:根据问题时间和问题类型,在Firebase中查找,找到问题的具体报错为空对象,对象没有latitude属性以及报错位置为bundle文件的1188行2834列;

4.分析问题
实例:由于代码为打包的bundle文件,故在代码的bundle文件中查找1188行2834列。搜索到位置后,可以定位到是sameLocation方法中的代码报错,在业务代码中搜索这一关键字(依然无法精确搜索时,可以结合上下文搜索)。

5.解决问题
实例:通过关键字进行搜索,如果仍有多个匹配项,可以结合上下文,精确定位到真实代码的位置。结合用户报错的场景和代码报错的位置,修改代码,解决问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值