我发现的所有示例都使用 MaterialApp 构造函数中的“navigatorObservers”
static FirebaseAnalytics analytics = FirebaseAnalytics.instance;
static FirebaseAnalyticsObserver observer =
FirebaseAnalyticsObserver(analytics: analytics);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Firebase Analytics Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
navigatorObservers: <NavigatorObserver>[observer],
home: MyHomePage(
title: 'Firebase Analytics Demo',
analytics: analytics,
observer: observer,
),
);
}
Run Code Online (Sandbox Code Playgroud)
但我的应用程序使用 Navigator 2.0 模式中的 MatterialApp.router,并且找不到附加 navigatorObserver 的等效项,以便跟踪 Firebase 分析的屏幕更改事件。对此有什么解决方法或建议吗?
我是Firebase的新手,我正在努力理解它,我想跟踪我的用户解锁的whitch成就(按我的身份)
我看了很多帖子关于这个喜欢这个地方说,
目前,仅在建议事件的子集上提供参数报告.如果您需要访问自定义参数,可以将应用程序链接到BigQuery并对原始数据运行查询.
所以据我所知,它应该显示建议事件的值,但我甚至没有得到这些值,我得到事件而不是值,我的控制台没有显示值.
我在代码上做的不好吗?我误解了事件?或者Firebase无法正常工作?
代码发送到firebase我的id
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ACHIEVEMENT_ID, Integer.toString(lm.logros[a].id));
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.UNLOCK_ACHIEVEMENT, bundle);
Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Firebase Analytics记录事件和当前屏幕,我在logcat中获取此日志:
App measurement is starting up, version: 9877
Registered activity lifecycle callback
Checking service availability
Service available
Connecting to remote service
onActivityCreated
Activity resumed, time: 234385086
Connected to remote service
Logging event (FE): _e, Bundle[{_o=auto, _et=9309, _sc=IntroActivity, _si=-6959962515326329023}]
setCurrentScreen cannot be called while no activity active
Logging event (FE): select_content, Bundle[{item_name=main, _o=app, content_type=image, item_id=1}]
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.ITEM_ID, "1");
bundle.putString(FirebaseAnalytics.Param.ITEM_NAME, "main");
bundle.putString(FirebaseAnalytics.Param.CONTENT_TYPE, "image");
mFirebaseAnalytics.logEvent(FirebaseAnalytics.Event.SELECT_CONTENT, bundle);
mFirebaseAnalytics.setCurrentScreen(MainActivity.this,"Main","Home");
Run Code Online (Sandbox Code Playgroud)
但在转到Firebase控制台后,我的应用程序中没有数据.为什么?
我正在尝试使用Cloud Functions for Firebase实施购买验证。这是我的index.js
'use strict';
const functions = require('firebase-functions');
const admin = require('firebase-admin');
admin.initializeApp(functions.config().firebase);
exports.updateDbOnPurchase = functions.analytics.event('in_app_purchase').onLog(event => {
const uid = event.data.user.userId;
const famKey = getFamKey(uid)
console.log("UID: ${uid}, famKey: ${famKey}")
admin.database().ref('/users/${uid}/famKey').then(snap => {
if (snap.exists()) {
admin.database().ref('/families/${famKey}/paydata/expire').set(Math.round(new Date().getTime()/1000) + 2592000)
}
});
});
Run Code Online (Sandbox Code Playgroud)
在我的应用中,我实现了应用内订阅,将APK推送到Alpha跟踪并进行了测试购买。但是此代码从未触发过。
因此,我有以下问题:
应用内订阅是否可与in_app_purchase事件一起使用?
它适用于测试购买吗?还是我必须对真实购买进行测试?
续订会触发事件吗?
是否可以用此代码购买SKU?
如果使用Freedom / Lucky Patcher进行盗版,是否会触发此代码?Firebase是否通过Google Play执行购买验证,还是我必须自己实施验证?
我已将Firebase分析数据设置为BigQuery。但是,我今天收到了我的第一个出口,其中包含了昨天所有的用户统计信息。很好,但是我需要生命周期统计历史记录,或者至少需要上个月的数据。
奖励问题:我可以直接访问Firebase分析控制台中使用的数据吗?对于某些我需要聚合的东西,他们应该用一些API喂它就足够了。那么,有没有http://analytics.firebase/data.json在登录Firebase帐户时可以访问以将数据保存到我的计算机上?
我正在从Firebase Analytics表中查询。
我使用的表每天都有一个分区。以下是各种日常分区的一些示例:
arm_studio.analytics_177892322.events_20180628
rm_studio.analytics_177892322.events_20180627
arm_studio.analytics_177892322.events_20180629
Run Code Online (Sandbox Code Playgroud)
本质上,我在问如何查询表的.all(每个分区)。即从记录的每个日期开始的分区。n天前查询也将很棒。
我浏览了有关分区表的BQ文档,常规语法似乎无法按预期工作。我还注意到,正常的分区表在表名之后只是日期,而不是如上例所示的“ .events_ [date]”。
目前,我只是在合并每个分区,每个分区都非常长且显然不可扩展。任何人都有查询这些表的经验吗?
Firebase 提供了一些默认事件,例如 level_up。以下是在代码中调用此事件的方法:
FirebaseAnalytics.LogEvent(FirebaseAnalytics.EventLevelUp, new Parameter(FirebaseAnalytics.ParameterLevel, levelNumber));
Run Code Online (Sandbox Code Playgroud)
我试过像这样制作我自己的事件(firebase 快速启动项目的方式):
FirebaseAnalytics.LogEvent("Player pressed the button", "Button name", someIntvalue));
Run Code Online (Sandbox Code Playgroud)
基本上将参数作为字符串发送。
我也试过这样写这个函数:
FirebaseAnalytics.LogEvent("Player pressed the button", new Parameter("Button name", someIntValue));
Run Code Online (Sandbox Code Playgroud)
这两个变体都没有在 firebase 分析的调试视图中注册,但默认事件会注册。
问题是什么?
提前致谢!
为了更好地了解用户如何使用我们的应用程序套件,我们决定在应用程序中使用 Firebase Analytics 来收集用户行为数据。我们还想确定我们的应用程序的执行情况,因此我们决定在我们的应用程序中包含 Firebase 性能监控。
为了设法打开和关闭数据收集,我们决定使用 LaunchDarkly: https: //launchdarkly.com/进行功能管理。要启用和禁用应用程序中的数据收集,需要运行以下代码行。
默认情况下,我在应用程序中将 firebase_analytics_collection_enabled 的值设置为 false,并在应用程序标记中使用以下元数据:
<meta-data android:name="firebase_analytics_collection_enabled" android:value="false" />
Run Code Online (Sandbox Code Playgroud)
为了重新启用数据收集,我使用以下代码行:
setAnalyticsCollectionEnabled(true);
Run Code Online (Sandbox Code Playgroud)
并禁用数据收集:
setAnalyticsCollectionEnabled(false);
Run Code Online (Sandbox Code Playgroud)
采用这种方法的主要问题是节省数据使用量,因为如果打开分析,它们会不断传输收集的数据,这会导致数据使用量增加。
但是,我不认为这会停止应用程序性能数据收集,因为 firebase 应用程序性能 SDK 似乎不使用 google play 服务来传输数据。
当我需要时,如何能够从 Firebase 启用和禁用应用性能分析?
我正在尝试禁用 Google Firebase Analytics 的自动屏幕报告。在Firebase 博客文章中,它指出
在 Android 上,在清单中将 google_analytics_automatic_screen_reporting_enabled 设置为“false”。
我应该如何更改我的AndroidManifest.xml以遵循上述说明?
我manifest像这样修改了标签,但我不确定这是否正确。
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
google_analytics_automatic_screen_reporting_enabled="false"
package="com.myapp.name"
>
Run Code Online (Sandbox Code Playgroud) android google-analytics android-manifest firebase firebase-analytics