2017-05-01 7 views
0

インストールのためにFireBase logEventを特定のイベントに一度使用します。FireBaseログコールバック付きのデバイスごとに1回のイベント

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(); 

    } 

しかし、携帯電話がインターネットにこれはない中華鍋に接続されていない、FireBaseeventにはコールバックはありませんが発生します!一方、インターネット接続をチェックして、FireBaseサーバーにログインしたイベントの保証はありません。では、デバイスごとに一度ログを保証する特定のイベントをどのように処理できますか?

答えて

1

Firebaseイベント名にはスペースを使用できません。ログに記録しているイベントが無効な名前 "bla bla bla"を使用しています。イベントを記録すると、logcatにエラーが出力され、無視されます。代わりに、パラメータとして無効な名前の「無効なイベント名」エラーイベントが表示されます。

Firebaseのアナリティクスコードが出荷前に動作することを確認することは、常に良い習慣です。これを行うには、debug loggingを有効にするか、debug viewを使用してFirebaseダッシュボード上のイベントを表示します。あなたは右

adb shell setprop log.tag.FA VERBOSE 
adb shell setprop log.tag.FA-SVC VERBOSE 
adb logcat -v time -s FA FA-SVC 
+0

と私たちはFireBaseイベントとして区切られた文字列を使用してはならないことを知っているが、私は、たとえば、「かくかくしかじか」をパットと私:

あなたはこのadbのコマンドでFirebase解析のデバッグログを有効にすることができます質問を修正してください。私はADBコマンドのために、それ以上のデバイスがあるというエラーが出ます。有効にするには魔女のデバイスを指定できますか? – Kenji

+0

私はあなたが「それ以上の装置があるというエラーが出る」ということを理解していません。 logcatの出力を投稿できますか?問題の説明に役立ちます。 – djabi

関連する問題