angular - 我是否正确理解 Firebase Analytics?
问题描述
我的目标是将 Ionic5(基于 Angular)与 Firebase 分析集成。我需要为 Android、IOS 和网络做这件事。
问题是适用于 IOS 和 Android 的东西 - 不适用于网络。
所以,我目前的解决方案 - 对于移动设备:
import { FirebaseAnalytics } from '@ionic-native/firebase-analytics/ngx';
然后用它来记录事件,等等:
this.fa.logEvent(name, properties);
如果用户来自网络(尝试与移动设备相同 - 但它不起作用):
import 'firebase/analytics';
import * as firebase from 'firebase/app';
and log events - firebase.analytics().logEvent(name, properties);
我的问题是:我理解正确吗?对于所有方法(例如示例),我是否应该为 Web 和移动设备提供不同的实现方式?前任。
In constructor (private fa: FirebaseAnalytics)
logEvent(name: string, properties: LogEventPropertiesModel): void {
this.platform.ready().then(() => {
if (this.isDesktop()) {
firebase.analytics().logEvent(name, properties); // Ex: "select_content", {content_type: "page_view"}
} else {
this.fa.logEvent(name, properties); // Ex: "select_content", {content_type: "page_view"}
}
//
});
}
解决方案
您的理解是正确的并且符合当前文档
Firebase.Analytics 利用 iOS/Android 的原生实现和 Web 的 JS 实现。
从理论上讲,您可以只坚持一种实现是 javascript,在 Ionic 的情况下,它可以在所有平台上工作(由于 web 视图或浏览器),但是本机实现让您不必担心另一个 javascript 代码阻塞主线程等(所以大多数情况下)性能原因)。
推荐阅读
- intellij-plugin - 如何从 github 存储库安装用于 intellij 的 Kotest 插件?
- java - NullPointerException 尽管检查对象不为空?
- python - 解包并重新加入固定宽度的文本
- c# - 限制 SkiaSharp 中 SKCanvasView 的平移
- jenkins - 我将如何存储声明性 Jenkins 管道的所有失败阶段
- excel-formula - 当我从规则中删除绝对引用时,条件格式无法按预期工作
- macos - Perl Net::MAC::Vendor OUI
- reporting - 在 POS_Sale_detail 报表中对 Qweb 报表行进行数字排序
- xcode - 我收到警告“setLineBreakMode:已弃用:iOS 3.0 中首次弃用”有任何替代方法吗?
- python - 如何将熊猫数据帧重新采样为每小时平均值,同时考虑时间和具有字符串值的列?