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

标签 swift firebase firebase-analytics

我尝试使用 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 事件

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

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

最佳答案

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

关于swift - setScreenname() 仅在 logEvent() 之后触发,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46945377/

相关文章:

ios - UIButton 的 titleEdgeInsets 毫无意义

android - Firebase 迁移到 androidX 时出现问题

firebase - 有没有办法只使用他们的 Uid 来检索任何用户的 PhotoUrl?

android - 将项目添加到 Firebase 数据库中的列表

ios - iOS 上的 Firebase Analytics 事件 - 测试和生产

json - Swift - 解码数组 JSON 数据的数组

ios - 境界在今拓

Firebase 分析不会提供超过 30 分钟的数据

Firebase 停止报告 in_app_purchase 事件

swift - 如何覆盖函数的协议(protocol)扩展默认实现?