スポンサーリンク

2016年8月23日火曜日

Firebase Analytics が使用するAndroidアプリのパーミッション

Google には現在、「Google アナリティクス」と「Firebase Analytics」の二つの Analytics サービスがあります。Google アナリティクスは昔からあるサービスで、Firebase Analytics は Google が2014年に買収した Firebase 社の流れを汲むサービスです。どちらも似たようなサービスなので、今後両者の関係はどうなっていくのかと思っていましたが、とりあえずはウェブ関係は Google アナリティクス、モバイルアプリは Firebase Analytics という棲み分けになるようです。



以前、Android アプリに Google アナリティクスを導入した際に、勝手に Wake Lock パーミッションが付いてしまうという記事を書きました。
http://extra-vision.blogspot.jp/2016/07/android-analytics-wake-lock_22.html

Androidアプリは現在、Firebase Analytics への移行が強く推奨されています。なので自分のアプリも少しずつ Firebase へ移行させています。半ば予想はしていましたが、Firebase の方も Android アプリに実装すると、勝手にパーミッションが追加されてしまいました。

勝手に追加されてしまうのは以下の三つのパーミッションです。
  •  android.permission.WAKE_LOCK
  •  com.google.android.c2dm.permission.RECEIVE
  •  ???.package.permission.C2D_MESSAGE

パーミッションは Android アプリの生命線です。必要無いものは極力付けないというのが鉄則です。問題はこれらが本当に必要なのか?ということです。

Google アナリティクスの時に問題になった Wake Lock はドキュメントに明確に、非Google Playアプリで必要になるものであり、オプションであるとも書かれていました。しかし Firebase Analytics ではこれらのパーミッションについて公式に書かれているものは見あたりません。

WALE_LOCK は、想像するに、バックウラウンドでデータを送信するためのものだと思います。

残りの二つはクラウドメッセージ(Cloud To Device Message)関連のパーミッションです。Firebaseには膨大な機能があり、Analytics はその中の一機能に過ぎません。これらのパーミッションが Firebase Cloud Message (FCM)で必要なことは容易に想像できます。しかし Analytics でも本当にこれらが使われているのでしょうか?

この件についてはあまり情報がありません。わずかに Firebase の Google Group で議論されていました。
https://groups.google.com/forum/?hl=ja#!topic/firebase-talk/CXgecSxgsRE

中で色々議論されていますが、結論から言うと、確定的な情報ではありませんが、これらのパーミッションは Firebase Analytics が裏で使っている、もしくは将来使うかもしれないものなので、無効にしない方がよいということです。これらを無効にしても Analytics は機能しているという報告もありますが、データを取りこぼすことがあるかもしれないそうです。

上のも書いたように、Firebase フレームワークには様々な機能があります。クラッシュレポートやクラウドメッセージ、AdMob 等、既存の機能もどんどん Firebase に取り込まれています。これらのどれを使っても上の三つのパーミッションは鉄板で付加されてしまいます。Firebase を使う上でデフォルトで必要となるパーミッションのようです。ドキュメントにの一言書いておいてくれれば悩む必要もないのにな。

0 件のコメント :

コメントを投稿