我想在安装时使用FireBase logEvent
一次特定事件。
String _HSAREDPREF_EVENT_KEY = "send_event_for_first_run";
String _FIREBASE_EVENT_KEY = "my_custom_event";
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(this);
mFirebaseAnalytics = FirebaseAnalytics.getInstance(this);
if (sharedPreferences.getBoolean(_HSAREDPREF_EVENT_KEY, false)) {
//this means it is sended once
} else {
Bundle bundle = new Bundle();
bundle.putString(FirebaseAnalytics.Param.VALUE, "1");
mFirebaseAnalytics.logEvent(_FIREBASE_EVENT_KEY, bundle);
sharedPreferences.edit().putBoolean(_HSAREDPREF_EVENT_KEY, true).apply();
}
但是,当手机没有连接到互联网时,这并不适合,因为FireBase
event
没有回拨!另一方面,如果我检查互联网连接,如果它存在,则无法保证登录FireBase服务器的事件!那么我如何处理保证每个设备登录一次的特定事件?
答案 0 :(得分:1)
Firebase事件名称不能包含空格。您正在记录的事件使用无效名称" bla bla bla"。记录事件时,它将在logcat中输出错误并被忽略。相反,您将收到一个"无效的事件名称"带有无效名称的错误事件作为参数。
在发货之前验证Firebase分析代码是否有效是一种很好的做法。为此,您可以启用debug logging或使用debug view在Firebase信息中心上查看活动。
您可以使用以下adb命令启用Firebase Analytics调试日志:
adb shell setprop log.tag.FA VERBOSE
adb shell setprop log.tag.FA-SVC VERBOSE
adb logcat -v time -s FA FA-SVC
答案 1 :(得分:1)
无法评论答案,因此将答案发布到@Mahdi-在两个命令中都使用-s标志在adb命令中提及android序列。
adb -s $ANDROID_SERIAL logcat -v time -s FA-SVC