Flutter 颤振碰撞清除自定义键
我在我的Flitter应用程序包中使用Crashlytics 我了解到我可以使用自定义键通过Flutter 颤振碰撞清除自定义键,flutter,crashlytics,Flutter,Crashlytics,我在我的Flitter应用程序包中使用Crashlytics 我了解到我可以使用自定义键通过setCustomKey方法发送附加数据。但是,我找不到一种方法来删除它,以用于下一个错误报告 这是我的firebase\u记录器。dart class FirebaseLogger implements ILogger { FirebaseCrashlytics get _crashlytics => FirebaseCrashlytics.instance; @override F
setCustomKey
方法发送附加数据。但是,我找不到一种方法来删除它,以用于下一个错误报告
这是我的firebase\u记录器。dart
class FirebaseLogger implements ILogger {
FirebaseCrashlytics get _crashlytics => FirebaseCrashlytics.instance;
@override
Future<void> init() async {
await Firebase.initializeApp();
}
@override
Future<void> trackError(
String name, {
Map<String, String> properties,
dynamic exception,
StackTrace stackTrace,
}) async {
final String userId = getUserId();
if (userId != null) _crashlytics.setUserIdentifier(userId);
properties.forEach((key, value) {
_crashlytics.setCustomKey(key, value);
});
_crashlytics.recordError(exception, stackTrace);
// Clear the keys for the next log
properties.forEach((key, value) {
_crashlytics.setCustomKey(key, '');
});
if (employeeId != null) _crashlytics.setUserIdentifier('');
}
}
类FirebaseLogger实现ILogger{
FirebaseCrashlytics get _crashlytics=>FirebaseCrashlytics.instance;
@凌驾
Future init()异步{
等待Firebase.initializeApp();
}
@凌驾
未来跟踪误差(
字符串名{
地图属性,
动态异常,
StackTrace StackTrace,
})异步的{
最后一个字符串userId=getUserId();
if(userId!=null)\u crashlytics.setUserIdentifier(userId);
properties.forEach((键,值){
_crashlytics.setCustomKey(键,值);
});
_recordError(异常,stackTrace);
//清除下一个日志的键
properties.forEach((键,值){
_setCustomKey(键“”);
});
如果(employeeId!=null)\u crashlytics.setUserIdentifier(“”);
}
}
下面是我的错误方法:
Future<void> testError1() async {
try {
throw Exception('error 1');
} catch (e, s) {
await _logger.trackError(
'testError1',
properties: {'name1': 'name 1', 'id1': 'id 1'},
exception: e,
stackTrace: s,
);
}
}
Future<void> testError2() async {
try {
throw Exception('error 2');
} catch (e, s) {
await _logger.trackError(
'testError2',
properties: {'name2': 'name 2', 'id2': 'id 2'},
exception: e,
stackTrace: s,
);
}
}
Future testError1()异步{
试一试{
抛出异常(“错误1”);
}渔获物(东、南){
等待_logger.trackError(
“测试错误1”,
属性:{'name1':'name1','id1':'id1'},
例外情况:e,
stackTrace:s,
);
}
}
Future testError2()异步{
试一试{
抛出异常(“错误2”);
}渔获物(东、南){
等待_logger.trackError(
“测试错误2”,
属性:{'name2':'name2','id2':'id2'},
例外情况:e,
stackTrace:s,
);
}
}
我尝试触发testError1
,然后触发testError2
。
我读到(可能不再有效)我必须在android SDK中将其设置为null或空,但在Flatter中,他们使用assert not null进行了检查。如果给它们空值,则得到testError2
emptyid1
和name1
属性的结果。是否有重置键/属性的方法