如何使用带有Ionic和Cordova的Firebase记录事件



每当用户访问我的Angular/Ionic应用程序的屏幕时,我都会尝试记录事件。

这是我的配置信息:

Ionic:
ionic (Ionic CLI)  : 4.1.2 (/Users/rguerin/.nvm/versions/node/v8.11.2/lib/node_modules/ionic)
Ionic Framework    : ionic-angular 3.9.2
@ionic/app-scripts : 3.2.0
Cordova:
cordova (Cordova CLI) : 8.1.0
Cordova Platforms     : ios 4.5.5
Cordova Plugins       : no whitelisted plugins (16 plugins total)
System:
NodeJS : v8.11.2 (/Users/rguerin/.nvm/versions/node/v8.11.2/bin/node)
npm    : 6.4.1
OS     : macOS High Sierra
Xcode  : Xcode 10.0 Build version 10A255

我也在使用以下插件:

<plugin name="cordova-plugin-firebase" spec="^2.0.0" />

我要查找的事件是"screen_view",但它是由Firebase自动记录的。问题是,这个事件只记录一次,因为当我使用Cordova时,插件可能会将我的应用程序视为一个页面。

当我尝试手动传递它时(请参阅下面的代码(,我在Firebase面板中看不到它。

export class CustomerPage {
ionViewDidEnter(): void {
(<any>window).FirebasePlugin.logEvent('screen_view', { page_id: 'customer_page' },
() => this.logger.trace('log event success'),
error => this.logger.error('Error login event: ', error));
}
}

我想避免使用自定义事件,正如我在这里和那里看到的,这是一个非免费和有限的解决方案。

有人有办法创建一个可靠且可利用的跟踪计划吗?

好的,所以作为一种变通方法,我使用setScreenName方法。我在ngOnInit钩子中为每个组件设置了当前的屏幕名称,它似乎可以工作:

export class TestPage implements OnInit {
ngOnInit(): void {
(<any>window).FirebasePlugin.setScreenName('TestPage');
}
}

但我不认为它仍然是100%可靠的,而且测试起来有点苛刻,因为仪表板没有实时重新加载。

如果有人有更好的方法,欢迎您:(

最新更新