Аналитика Firebase отображает неверные данные в DebugView - PullRequest
0 голосов
/ 22 мая 2018

Я использую Firebase Analytics.Я зарегистрировал два пользовательских свойства, и у меня есть два пользовательских события, каждое из которых включает от 3 до 50 различных опций.Я столкнулся с проблемой, что когда я устанавливаю пользовательское свойство, очень часто DebugView отображает старое пользовательское свойство для события или не отображается вообще.Иногда это работает правильно.Подскажите пожалуйста, как это можно исправить?

Мой код.

final class FirebaseAnalyticsManager {

    enum ScreenType {
        case editStoryScreen, homeScreen, previewStoryScreen, storeItemPreviewScreen

        var name: String {
            switch self {
            case .editStoryScreen:
                return "Edit Story Screen"
            case .homeScreen:
                return "Home Screen"
            case .previewStoryScreen:
                return "Preview Story Screen"
            case .storeItemPreviewScreen:
                return "Store Item Preview Screen"
            }
        }
    }

    enum Event {
        case templateSelected, mediaExport

        var name: String {
            switch self {
            case .templateSelected:
                return "TemplateSelected"
            case .mediaExport:
                return "MediaExport"
            }
        }
    }

    enum MediaExportDestination {
        case story, page, pageToInstagram

        var name: String {
            switch self {
            case .story:
                return "Story"
            case .page:
                return "Page"
            case .pageToInstagram:
                return "PageToInstagram"
            }
        }
    }

    private enum Keys: String {
        case exportType, templateName
    }

    private init() { }
    static let shared = FirebaseAnalyticsManager()

    open func trackScreen(_ screenType: ScreenType, screenClass: String?) {
        Analytics.setScreenName(screenType.name, screenClass: screenClass)
    }

    private func trackEvent(_ event: Event, parameters: [String : NSObject]?) {
        Analytics.logEvent(event.name, parameters: parameters)
    }

    open func trackTemplateSelected(_ templateName: String) {
        let key = Keys.templateName.rawValue
        Analytics.setUserProperty(templateName, forName: key)
        var parameters = [String : NSObject]()
        parameters[key] = templateName as NSObject
        trackEvent(.templateSelected, parameters: parameters)
    }

    open func trackMediaExport(_ destination: MediaExportDestination) {
        let key = Keys.exportType.rawValue
        Analytics.setUserProperty(destination.name, forName: key)
        var parameters = [String : NSObject]()
        parameters[key] = destination.name as NSObject
        trackEvent(.mediaExport, parameters: parameters)
    }

}

В этом случае все данные верны.enter image description here enter image description here

В этом случае данные неверны, так как они должны быть Template5 в userProperties.enter image description here enter image description here

1 Ответ

0 голосов
/ 12 июня 2018

Команда Firebase ответила мне

Привет, я только что получил обновление от наших инженеров, подтверждающее, что это действительно ошибка с нашей стороны.Они уже работают над исправлением этой проблемы, но я не могу поделиться подробностями или сроками, когда это будет исправлено.Пожалуйста, следите за обновлениями в наших заметках о выпуске.

...