使用 Firebase Analytics 在 Flutter 中跟踪屏幕视图

Ada*_*amK 6 flutter firebase-analytics

使用分析包在 Flutter 中手动记录屏幕视图的最佳位置是什么(在我的情况下,我使用的是 Firebase Analytics,例如跟踪屏幕)?

查看 Flutter 生命周期,不清楚跟踪屏幕视图在哪里有意义。

对于 a StatelessWidget,我认为build()可能是有道理的,因为我猜每个屏幕视图只调用一次。

怎么样的StatefulWidget关系吗?在这种情况下build()将没有用,因为它可以被多次调用。其他候选者是initState(),createState()或构造函数,它们似乎都只被调用一次,尽管我猜测它们可能在每个屏幕视图中都被调用多次,因为层次结构中的小部件被重新构建。

Ada*_*amK 7

答案是:视情况而定。对于StatelessWidget,可能适合在 中包含 Analytics 事件build(),但前提是父小部件不经常重新构建。对于StatefulWidget同样适用,但您还必须考虑由于状态更改而导致的重新构建(这很可能经常发生)。

实际上,最安全的路径不是在小部件生命周期的任何部分调用 Analytics 事件,而是在可能触发屏幕的 UI 事件上调用,例如,打开编辑屏幕的编辑按钮。但是,该方法的问题在于可能会从应用程序内的多个位置打开屏幕(这意味着您必须在所有这些位置重复 Analytics 调用)。

这意味着最好的选择可能是将 Analytics 与PageRoute转换联系起来,以便在执行页面路由时始终如一地调用它。这在docs 中得到了证明。这将错过选项卡栏中的跟踪屏幕和其他类型的 UI 导航,但正如文档中所说,处理此问题的一种方法是实现RouteAware并订阅它FirebaseAnalyticsObserver示例选项卡实现)。