我正在尝试为Firebase Crashlytics报告设置用户ID。
当前,我仅发送未发送或已更改的用户ID(非常罕见的事件)。而且崩溃报告中没有用户ID。
我的代码:
+ (void)setCrashlyticsUserData:(User *)user
{
if (user == nil) { return; }
NSString *userIdKey = @"CRASHLYTICS_SENT_USER_ID";
NSUserDefaults *userDefaults = NSUserDefaults.standardUserDefaults;
NSInteger sentUserId = [userDefaults integerForKey:userIdKey];
if (sentUserId == user.userId) { return; }
[CrashlyticsKit setUserIdentifier:[NSString stringWithFormat:@"%i", user.userId]];
[userDefaults setInteger:user.userId forKey:userIdKey];
}
如果此行被注释if (sentUserId == user.userId) { return; }
,则我在崩溃报告中会收到一个用户ID。
每次启动应用程序时,我都应该叫[CrashlyticsKit setUserIdentifier:]
吗?我在文档中找不到有关它的任何信息。
答案 0 :(得分:1)
Crashlytics的自定义属性(如自定义键或用户标识符)在每个会话中均以日志形式工作。 因此,您应该在每个应用会话中尽早调用setUserIdentifier。 有关代码示例,请参见此链接:
答案 1 :(得分:0)
您可以使用[Crashlytics setUserIdentifier:]
提供一个ID号,令牌或哈希值,该ID可以唯一标识应用程序的最终用户,而无需透露或传输其任何个人信息。您也可以通过将其设置为空白字符串来清除该值。此值直接显示在Crashlytics仪表板中。
[CrashlyticsKit setUserIdentifier:@"123456789"]; //User ID
或使用[CrashlyticsKit setObjectValue:forKey:]
设置自定义密钥的另一个选项,请参见以下示例。
[CrashlyticsKit setIntValue:3 forKey:@"userid"];
[CrashlyticsKit setObjectValue:@"logged_in" forKey:@"last_UI_action"];
有关更多信息,请参阅此文档。
https://docs.fabric.io/apple/crashlytics/enhanced-reports.html