我正在从Google Analytics转换到Firebase Analytics。与Google Analytics不同,Firebase自动跟踪屏幕视图,这很好!但是,它不断尝试跟踪UINavigationController而不是跟踪屏幕。每次我导航到另一个视图控制器时,我会收到以下错误日志两次。
[Firebase/Analytics][I-ACS031006] 视图控制器已经被跟踪。类、ID:UINavigationController,-1770652405567491888
当你有一个导航控制器时,是否需要一些配置?在这种情况下,如何让自动屏幕跟踪工作?
更新:我还没有找到解决方案,但我至少找到了问题的原因。看起来如果你的初始视图控制器是标签栏控制器,Firebase无法理解你的视图控制器层次结构。我的主故事板中的初始视图控制器是标签栏控制器。如果我将其删除,则可以从我的应用程序获得良好的屏幕跟踪报告。
更新:看起来我已经找到了一个可行的解决方案,但我仍然想知道是否有更好的方法。由于Firebase将标签栏控制器下的所有视图控制器都视为同一个UINavigationController,因此我可以在viewDidAppear中手动调用setScreenName来跟踪它们所有的屏幕。
[Firebase/Analytics][I-ACS031006] 视图控制器已经被跟踪。类、ID:UINavigationController,-1770652405567491888
当你有一个导航控制器时,是否需要一些配置?在这种情况下,如何让自动屏幕跟踪工作?
更新:我还没有找到解决方案,但我至少找到了问题的原因。看起来如果你的初始视图控制器是标签栏控制器,Firebase无法理解你的视图控制器层次结构。我的主故事板中的初始视图控制器是标签栏控制器。如果我将其删除,则可以从我的应用程序获得良好的屏幕跟踪报告。
更新:看起来我已经找到了一个可行的解决方案,但我仍然想知道是否有更好的方法。由于Firebase将标签栏控制器下的所有视图控制器都视为同一个UINavigationController,因此我可以在viewDidAppear中手动调用setScreenName来跟踪它们所有的屏幕。
Analytics.setScreenName(screenName, screenClass: screenClass)
这是可以接受的,因为它不比Google Analyics差,但并不理想,因为系统仍然尝试每个视图控制器两次跟踪UINavigationController,并且我也没有享受到自动屏幕跟踪带来的好处。我尝试删除Firebase中的选项卡栏控制器,因为一些人似乎已经这样做了,但看起来这些方法已经从当前(v4.0.0)版本的Firebase SDK中删除了。