【问题标题】:setScreenname() only fires after logEvent()setScreenname() 仅在 logEvent() 之后触发
【发布时间】:2017-10-26 03:25:06
【问题描述】:

我尝试使用 Firebase 来跟踪我的应用。这是我的代码:

import UIKit
import Firebase

class Section1121: UIViewController {

    override func loadView() {
        super.loadView()
        Analytics.setScreenName("Screen1.1.2.1", screenClass: "Section1121")
    }

    override func viewDidAppear(_ animated: Bool) {
        super.viewDidAppear(true)

        // Do any additional setup after loading the view.
        Analytics.logEvent(AnalyticsEventAddToCart, parameters: nil)
    }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

我期望以下顺序:
1:默认screen_view事件触发,不改变屏幕名称
2:setScreenname 触发并更改屏幕名称
3:logevent 触发,发送 add_to_cart 带有新屏幕名称的事件

但调试视图上的实际顺序是 1 -> 3 -> 2,并且记录了 add_to_cart 而没有新的屏幕名称。
这是screenshot of debug view

代码中setScreenname肯定在logEvent之前,但是为什么触发顺序变了呢?
我可以在logEvent之前让它火吗?

【问题讨论】:

  • setScreenName 应该在 viewDidAppear 中调用:而不是 loadView:屏幕应该对用户可见。

标签: swift firebase firebase-analytics


【解决方案1】:

按照 adbitx 的建议,我在 logEvent 之前将 setScreenName 移至 viewDidAppear,代码似乎可以正常工作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-02-02
    • 2023-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-03-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多