首页 > 解决方案 > Firebase + Capacitor Ionic Angular:@angular/fire 分析模块不起作用

问题描述

我正在使用 Capacitor、Ionic 和 Angular 开发一个应用程序。我使用@angular/fire 包实现了firebase,并在app.module 中配置了它。Firestore 和远程配置工作得很好,但我在分析和性能监控方面遇到了问题。当包含它们各自的模块时,什么也没有发生,我在 Firebase 控制台中看不到任何数据。我安装了 Google Analytics Debugger Chrome 扩展程序,并看到以下日志输出:

[WDS] Live Reloading enabled.
js?l=dataLayer:97        _                 _
  __ _| |_ __ _  __ _   (_)___
 / _` | __/ _` |/ _` |  | / __|
| (_| | || (_| | (_| |_ | \__ \
 \__, |\__\__,_|\__, (_)/ |___/
 |___/          |___/ |__/


js?l=dataLayer:97 Processing commands (0)
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer push: {event: "gtm.dom"}
js?l=dataLayer:97 No tags fired for event: gtm.dom
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer push: {event: "gtm.load"}
js?l=dataLayer:97 No tags fired for event: gtm.load
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["js", Thu Jul 23 2020 15:29:20 GMT+0200 (Central European Summer Time)]
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["config", "G-EFXK7WP1L3", {firebase_id: "em9ORiiXLIobdTTC-vYtV7", origin: "firebase", update: true}]
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["config", "G-EFXK7WP1L3", {page_path: "/home", screen_class: "sw-home", update: true}]
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["config", "G-EFXK7WP1L3", {page_title: "Switch", update: true}]
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["config", "G-EFXK7WP1L3", {update: true, screen_name: "home"}]
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["event", "screen_view", {firebase_screen_class: "sw-home", firebase_screen_id: -2048229402, screen_name: "home", page_path: "/home", firebase_event_origin: "auto", firebase_screen: "home", outlet: "primary", page_title: "Switch", screen_class: "sw-home", send_to: "G-EFXK7WP1L3"}]
home:1 A cookie associated with a cross-site resource at http://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
home:1 A cookie associated with a cross-site resource at https://google.com/ was set without the `SameSite` attribute. A future release of Chrome will only deliver cookies with cross-site requests if they are set with `SameSite=None` and `Secure`. You can review cookies in developer tools under Application>Storage>Cookies and see more details at https://www.chromestatus.com/feature/5088147346030592 and https://www.chromestatus.com/feature/5633521622188032.
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer command: ["config", "G-EFXK7WP1L3", {update: true, user_id: null}]

据我了解,事件已创建但不会发送给 Google。此外,在网络选项卡中,我没有看到对 /collect 端点发出的任何 POST 请求。我还尝试使用依赖注入启用调试模式,但没有任何改变。

我尝试的是注释掉 AngularFireAnalyticsModule 导入,然后导入 firebase 和 firebase/analytics 并在 AppModule 的构造函数中调用 firebase.analytics()。当我这样做并启用 Chrome 插件时,我能够在我的 Firebase 控制台 DebugView 中看到一些事件,并且日志输出如下:

  __ _| |_ __ _  __ _   (_)___
 / _` | __/ _` |/ _` |  | / __|
| (_| | || (_| | (_| |_ | \__ \
 \__, |\__\__,_|\__, (_)/ |___/
 |___/          |___/ |__/


js?l=dataLayer:97 Processing commands (0)
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer push: {event: "gtm.dom"}
js?l=dataLayer:97 No tags fired for event: gtm.dom
client:52 [WDS] Live Reloading enabled.
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing GTAG command: ["js", Thu Jul 23 2020 15:52:19 GMT+0200 (Central European Summer Time)]
js?l=dataLayer:97 No tags fired for event: gtm.js
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing GTAG command: ["config", "G-EFXK7WP1L3", {firebase_id: "em9ORiiXLIobdTTC-vYtV7", origin: "firebase", update: true}]
js?l=dataLayer:97 GTAG Command: "config", target: "G-EFXK7WP1L3", configuration: {firebase_id: "em9ORiiXLIobdTTC-vYtV7", origin: "firebase", update: true}
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134        _                 _
  __ _| |_ __ _  __ _   (_)___
 / _` | __/ _` |/ _` |  | / __|
| (_| | || (_| | (_| |_ | \__ \
 \__, |\__\__,_|\__, (_)/ |___/
 |___/          |___/ |__/


js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing commands (3)
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing data layer push: {event: "gtm.dom", gtm.uniqueEventId: 1}
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 No tags fired for event: gtm.dom
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing GTAG command: ["js", Thu Jul 23 2020 15:52:19 GMT+0200 (Central European Summer Time)]
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Tag fired: {function: "__gct", vtp_trackingId: "G-EFXK7WP1L3", vtp_adFeatures: false, vtp_sessionDuration: 0, vtp_googleSignals: ["macro", 1], vtp_foreignTld: ["macro", 2], vtp_restrictDomain: ["macro", 3], vtp_eventSettings: ["map", "app_store_subscription_convert", ["map", "blacklisted", false, "conversion", true], "app_store_subscription_renew", ["map", "blacklisted", false, "conversion", true], "first_open", ["map", "blacklisted", false, "conversion", true], "in_app_purchase", ["map", "blacklisted", false, "conversion", true], "purchase", ["map", "blacklisted", false, "conversion", true]], vtp_dynamicEventSettings: ["map", "edit_rules", ["list"], "synthesis_rules", ["list"]], tag_id: 7}
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Loaded existing client id: 612189906.1595510156
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Event would be batched, but batching is disabled in debug mode.
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Sending event "page_view" to undefined
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Request parameters:
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 v: 2
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 tid: G-EFXK7WP1L3
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 gtm: 2oe7f0
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 _p: 536560896
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 sr: 375x812
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 _dbg: 1
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 ul: it-it
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 _fid: em9ORiiXLIobdTTC-vYtV7
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 cid: 612189906.1595510156
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Event parameters:
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 en: page_view
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 ep.origin: firebase
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Shared parameters:
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 dl: http://localhost/home
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 dr: http://localhost:8100/home
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 dt: Switch
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 sid: 1595512286
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 sct: 2
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 seg: 1
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Sending request: https://www.google-analytics.com/g/collect?v=2&tid=G-EFXK7WP1L3&gtm=2oe7f0&_p=536560896&sr=375x812&_dbg=1&ul=it-it&_fid=em9ORiiXLIobdTTC-vYtV7&cid=612189906.1595510156&_s=1&dl=http%3A%2F%2Flocalhost%2Fhome&dr=http%3A%2F%2Flocalhost%3A8100%2Fhome&dt=Switch&sid=1595512286&sct=2&seg=1&en=page_view&ep.origin=firebase
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing GTAG command: ["config", "G-EFXK7WP1L3", {firebase_id: "em9ORiiXLIobdTTC-vYtV7", origin: "firebase", _uei: 3}]
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 GTAG Command: "config", target: "G-EFXK7WP1L3", configuration: {firebase_id: "em9ORiiXLIobdTTC-vYtV7", origin: "firebase", _uei: 3}
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 No tags fired for event: gtag.config
js?l=dataLayer:97 Processing commands (1)
js?l=dataLayer:97 Processing data layer push: {event: "gtm.load"}
js?l=dataLayer:97 No tags fired for event: gtm.load
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing commands (1)
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 Processing data layer push: {event: "gtm.load", gtm.uniqueEventId: 7}
js?id=G-EFXK7WP1L3&l=dataLayer&cx=c:134 No tags fired for event: gtm.load

我还注意到对 /collect 端点的 POST 调用,所以一切都按预期工作。问题是 - 为什么模块不能正常工作?我究竟做错了什么?

标签: angularfirebaseangularfire

解决方案


推荐阅读