Я пробовал использовать 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"
});