【问题标题】:iOS Firebase CrashlyticsKit not setting user IDiOS Firebase CrashlyticsKit 未设置用户 ID
【发布时间】:2019-05-22 09:01:27
【问题描述】:

我正在尝试为 Firebase Crashlytics 报告设置用户 ID。

目前,我仅在未发送或更改用户 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:] 吗?我在文档中找不到任何有关它的信息。

【问题讨论】:

    标签: ios firebase crashlytics


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

      您可以使用[Crashlytics setUserIdentifier:] 提供唯一标识您的应用程序最终用户的 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

      【讨论】:

      • 我已阅读文档。我的问题是我应该在每次应用启动时都致电[CrashlyticsKit setUserIdentifier:]
      • 是的,您可以在每次应用启动时调用 [CrashlyticsKit setUserIdentifier:]
      猜你喜欢
      • 1970-01-01
      • 2020-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-30
      • 1970-01-01
      • 2017-12-24
      • 2012-08-23
      相关资源
      最近更新 更多