4

私は権限とクラッシュ

//Analytics 
compile 'com.google.firebase:firebase-core:9.2.1' 
// Crash 
compile 'com.google.firebase:firebase-crash:9.2.1' 

を使用して、私の生成マニフェストでそれらの人を得た:

<!-- Required permission for App measurement to run. --> 
<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 
<!-- Optional permission for App measurement to run. --> 
<uses-permission android:name="android.permission.WAKE_LOCK" /> 
<uses-permission android:name="com.google.android.c2dm.permission.RECEIVE" /> 

その後、我々は次のブロックに

<permission 
    android:name="my.package.name.permission.C2D_MESSAGE" 
    android:protectionLevel="signature" /> 
<uses-permission android:name="my.package.name.permission.C2D_MESSAGE" /> 

私の質問があります:

私はFirebase解析とクラッシュのみを使用し、機能的な任意のメッセージを必要としない場合、それは次のように第二のブロックを削除するにはOKです:

<uses-permission android:name="my.package.name.permission.C2D_MESSAGE" tools:node="remove" /> 

それは「Appのオプションの許可をどういう意味最初のブロックで測定を実行するか?それも取り除いても安全ですか?

答えて

2

FirebaseInstanceIdを使用します。これは、GradleのAndroidスタジオツールウィンドウで依存タスクを実行することで確認できます。出力のこの部分はFirebaseInstanceIdへの依存性を示しています

+--- com.google.firebase:firebase-core:9.2.1 
| \--- com.google.firebase:firebase-analytics:9.2.1 
|   +--- com.google.android.gms:play-services-basement:9.2.1 
|   | \--- com.android.support:support-v4:24.1.0 
|   |   \--- LOCAL: internal_impl-24.1.0.jar 
|   +--- com.google.firebase:firebase-common:9.2.1 
|   | +--- com.google.android.gms:play-services-basement:9.2.1 
|   | | \--- com.android.support:support-v4:24.1.0 
|   | |   \--- LOCAL: internal_impl-24.1.0.jar 
|   | \--- com.google.android.gms:play-services-tasks:9.2.1 
|   |   \--- com.google.android.gms:play-services-basement:9.2.1 
|   |    \--- com.android.support:support-v4:24.1.0 
|   |     \--- LOCAL: internal_impl-24.1.0.jar 
|   \--- com.google.firebase:firebase-analytics-impl:9.2.1 
|    +--- com.google.android.gms:play-services-basement:9.2.1 
|    | \--- com.android.support:support-v4:24.1.0 
|    |   \--- LOCAL: internal_impl-24.1.0.jar 
|    +--- com.google.firebase:firebase-iid:9.2.1 <== FirebaseInstanceId 
|    | +--- com.google.android.gms:play-services-basement:9.2.1 
|    | | \--- com.android.support:support-v4:24.1.0 
|    | |   \--- LOCAL: internal_impl-24.1.0.jar 
|    | \--- com.google.firebase:firebase-common:9.2.1 
|    |   +--- com.google.android.gms:play-services-basement:9.2.1 
|    |   | \--- com.android.support:support-v4:24.1.0 
|    |   |   \--- LOCAL: internal_impl-24.1.0.jar 
|    |   \--- com.google.android.gms:play-services-tasks:9.2.1 
|    |    \--- com.google.android.gms:play-services-basement:9.2.1 
|    |     \--- com.android.support:support-v4:24.1.0 
|    |      \--- LOCAL: internal_impl-24.1.0.jar 
|    \--- com.google.firebase:firebase-common:9.2.1 
|     +--- com.google.android.gms:play-services-basement:9.2.1 
|     | \--- com.android.support:support-v4:24.1.0 
|     |   \--- LOCAL: internal_impl-24.1.0.jar 
|     \--- com.google.android.gms:play-services-tasks:9.2.1 
|      \--- com.google.android.gms:play-services-basement:9.2.1 
|        \--- com.android.support:support-v4:24.1.0 
|         \--- LOCAL: internal_impl-24.1.0.jar 

C2D_MESSAGE許可がfirebase-iidライブラリに関連付けられたマニフェストから来ています。私の推測では、FirebaseAnalyticsがなければ、デバイスの一意のIDを取得することができず、データを報告することができなくなります。

WAKE_LOCKの許可については、related answerを参照してください。

権限のいずれかを削除しても安全だとは限りません。アナリティクスなしで実行し、アナリティクスが何らかのイベントを報告しているかどうかを確認すると分かります。

2

はい、両方とも削除できます。ではなく、が必要です。また、Googleのsampleでは、これらの2つの権限は許可されていません。 documentationによると

Firebase Analyticsでは、あなたは人々があなたのiOSや Androidアプリの使い方を理解するのに役立ちます。 SDKは自動的にいくつかのイベントと ユーザプロパティをキャプチャし、独自のカスタムイベント を定義して、あなたのビジネスに固有のものを測定することもできます。 のデータがキャプチャされると、Firebase コンソールからダッシュボードで利用できます。このダッシュボードは、アクティブユーザーや人口統計などのサマリーデータから、 のデータに関する詳細な情報を提供し、最も購入したアイテムを特定するなどの詳細データを提供します。

また、thisビデオを見ると、測定に関するより良いアイデアが得られます。

1

「オプションのアクセス許可」は、W2KではなくWAKE_LOCKを指していることに注意してください。許可。リクルート。

「オプションの許可」は、firebase-analyticsの中間フォルダのマニフェストから派生したものです。 (\ build \ intermediates \ exploded-aar \ com.google.firebase \ firebase-analytics)。

enter image description here

WAKE_LOCK権限は、もはやオプションではありません、バージョン10.0.1(私が使用したバージョン)のためにそれを注意してください。 Wakelockは、「App測定を実行するためのオプションの許可」を表示しなくなりました。 a lot of crashesになりますWAKE_LOCK権限を削除

enter image description here

その他の権限については、 https://groups.google.com/d/msg/firebase-talk/CXgecSxgsRE/84PsoyTKGgAJのDoug Stevensonによると、C2D_MESSAGEとc2dm.permission.RECEIVEは重要です。

メッセージングにのみ関連するように見えるその他のアクセス許可は、実際にはアナリティクスやその他のFirebaseコンポーネントによって間接的に使用されることが判明しました。理由は、定期的に回転する必要のある安全なトークンを生成する必要があるからです。これは、インスタンスIDライブラリによって処理されます。これについては、ここで読むことができます:https://developers.google.com/instance-id/

... Firebaseコンポーネントが正しく動作することを確認する上で重要です。アナリティクス、クラッシュレポート、およびリモート設定のすべてが、これらのトークンを今日利用していると言われています。