iOS Firebase CrashlyticsKit未设置用户ID

时间:2019-05-22 09:01:28

标签: ios firebase crashlytics

我正在尝试为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:]吗?我在文档中找不到有关它的任何信息。

2 个答案:

答案 0 :(得分:1)

Crashlytics的自定义属性(如自定义键或用户标识符)在每个会话中均以日志形式工作。 因此,您应该在每个应用会话中尽早调用setUserIdentifier。 有关代码示例,请参见此链接:

https://fabric.io/kits/ios/crashlytics/features

答案 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