【问题标题】:Firebase analytics with latest Ti SDK 9.0.3 GA having issue for screen_view具有最新 Ti SDK 9.0.3 GA 的 Firebase 分析存在 screen_view 问题
【发布时间】:2020-11-25 12:26:22
【问题描述】:

我尝试将 Firebase 与之前版本的 Ti SDK (7.5.2) 一起使用。 FIRAnalytics.setScreenName 和 FIRAnalytics.logEventWithName(ti.firebase 的方法,其他模块中的相等方法)工作正常。

最初的想法是,可能是模块问题。但是阅读几篇博文就知道 Firebase 会自动跟踪屏幕浏览量https://firebase.google.com/docs/analytics/screenviews

当然我们也可以手动调用。

如果我的猜测是正确的,那么在应用启动时,firebase 会开始跟踪屏幕时间,并且我们会遇到错误。 (我尝试使用 ti.firebase、firebase.analytics 和自己的 ios 原生移动示例)

objc[67740]: 无法形成对实例的弱引用 (0x7f9ab8e0aac0) UIViewController 类。这个物体可能是 过度释放,或正在释放。

我找到了关闭屏幕跟踪的替代方法。通过在 Project 的 info.plist 中将 FirebaseScreenReportingEnabled 添加到 false。对于 Titanium 项目,我们需要添加 tiapp.xml 。这次我们没有看到任何问题,并且日志事件工作正常。但我没有看到任何屏幕视图,甚至是手动的。因为此选项将完全阻止屏幕跟踪。

:
<ios>
        <enable-launch-screen-storyboard>true</enable-launch-screen-storyboard>
        <use-app-thinning>true</use-app-thinning>
        <plist>
            <dict>
                :
                <key>UIStatusBarStyle</key>
                <string>UIStatusBarStyleDefault</string>
                <key>FirebaseScreenReportingEnabled</key>
                <false/>
            </dict>
        </plist>
    </ios>
:

但这甚至不能手动跟踪屏幕浏览量。所以我们正在失去平均屏幕时间的轨迹。

这里是 ti.firebase 的例子(我尝试使用 firebase.analytics 很遗憾我可以参考这里的示例代码,但我们可以使用这个https://github.com/hansemannn/titanium-firebase-analytics/blob/master/example/app.js

var _tFireb = require('ti.firebase');
_tFireb.configure();

function doClick(e) {
    alert($.label.text);
    
    var logParams = {
        'name': "button_clicked",
        'parameters': null
    };
    //Ti.API.info("Sending logEvtData", logParams);
    _tFireb.FIRAnalytics.logEventWithName(logParams);
}

$.index.open();

_tFireb.FIRAnalytics.setScreenName({
        'screenName' :  "indexdefault",
        'screenClass' : "indexdefault"
    });

【问题讨论】:

  • 您能否展示您如何实现 firebase 模块和 firebase-analytics 部分的代码。不应该是setScreenNameAndScreenClass()吗?
  • 是的 miga 我同意,我只是复制 ti.firebase 的方法..

标签: ios firebase titanium appcelerator titanium-modules


【解决方案1】:

我们尝试使用最新的 Titan-firebase-analytics 模块。它工作正常。

https://github.com/hansemannn/titanium-firebase-analytics/releases/tag/ios-2.0.0

Firebase 本身发生了变化。现在通过传递常量发送 Screenview 也与日志事件相同。注意:如果您通过“screen_view”,它将不起作用。 你需要像下面这样使用 const,模块已经处理好了。

[FIRAnalytics logEventWithName:kFIREventScreenView parameters:]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-13
    • 2018-09-28
    • 2012-01-11
    • 2011-05-17
    • 2020-10-01
    • 2021-01-20
    相关资源
    最近更新 更多