每个具有CallBack的设备的FireBase日志事件一次

时间:2017-05-01 08:08:45

标签: android firebase event-log firebase-analytics

我想在安装时使用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服务器的事件!那么我如何处理保证每个设备登录一次的特定事件?

2 个答案:

答案 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
相关问题