У аналитики Firebase с последней версией Ti SDK 9.0.3 GA возникла проблема с screen_view - PullRequest
1 голос
/ 05 августа 2020

Я пробовал использовать 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. Возможно, этот объект был слишком освобожден или находится в процессе освобождения.

Я нашел альтернативу отключению отслеживания экрана. Добавив FirebaseScreenReportingEnabled к false в Project's info.plist . Для проекта 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"
    });

1 Ответ

1 голос
/ 02 сентября 2020

Мы пробовали использовать последнюю версию модуля titanium-firebase-analytics. Он работает нормально.

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

В самой Firebase есть изменения. Нет, мы отправляем Screenview так же, как событие журнала, передавая константу. Примечание: если вы передадите screen_view, это не сработает. вам нужно использовать const, как показано ниже, модуль уже позаботился об этом.

[FIRAnalytics logEventWithName:kFIREventScreenView parameters:]

...