setScreenname() 仅在 logEvent() 之后触发

setScreenname() only fires after logEvent()

我尝试使用 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 之前启动它吗?

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