4

Я использовалразрешения для Firebase Analytics и Крушения

//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 Analytics и Крэш и не нуждаются в каких-либо сообщений функциональна, это нормально, чтобы удалить второй блок следующим образом:

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

Что означает «Дополнительное разрешение на App измерение для запуска "в первом блоке? Безопасно ли это удалить?

ответ

2

Firebase Analytics использует FirebaseInstanceId. Это можно увидеть, запустив задачу зависимости в окне инструментов Android Studio для Gradle. Эта часть выходных данных показывает зависимость от 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 не сможет получить уникальный идентификатор для устройства и не сможет сообщить данные.

Относительно разрешения WAKE_LOCK, см. Это related answer.

Я сомневаюсь, что можно удалить любые разрешения. Вы могли бы узнать, работая без них, и узнаете, аналитирует ли отчеты какие-либо события.

2

Да, вы можете удалить оба из них, и они не необходимо. Также в google sample эти два разрешения не предоставлены.

По documentation:

Firebase Analytics помогает понять, как люди используют ваши IOS или Android приложение. SDK автоматически фиксирует ряд событий и свойства пользователей , а также позволяет вам определять свои собственные события , чтобы измерить то, что уникально для вашего бизнеса.. Как только данные будут захвачены, он доступен в приборной панели через консоль Firebase . Эта панель содержит подробные сведения о ваших данных - из итоговых данных, таких как активные пользователи и демографические данные, до более подробных данных, таких как идентификация наиболее купленных предметов.

Также видя this видео, возможно, вы получите лучшее представление об измерении.

1

Обратите внимание, что «Дополнительное разрешение» относится только к WAKE_LOCK, а не к2dm.permission.RECEIVE.

«Факультативное разрешение» получено из манифеста промежуточной папки для firebase-analytics. (\ Сборка \ промежуточные \ разобранный-AAR \ com.google.firebase \ firebase-аналитика).

enter image description here

не Обратите внимание, что для версии 10.0.1 (версия я использовал), разрешение WAKE_LOCK является больше не факультативный. Wakelock больше не показывает «Дополнительное разрешение для измерения App для запуска».

enter image description here

удаление разрешения WAKE_LOCK приведет к a lot of crashes.

Что касается других разрешений. По словам Дуга Стивенсона по телефону https://groups.google.com/d/msg/firebase-talk/CXgecSxgsRE/84PsoyTKGgAJ C2D_MESSAGE и c2dm.permission.RECEIVE важно.

Оказалось, что те другие разрешения, которые кажутся релевантными только для обмена сообщениями, фактически используются косвенно аналитикой и другими компонентами Firebase. Причина в том, что они должны создавать безопасные токены, которые необходимо периодически поворачивать. Это обрабатывается библиотекой идентификаторов экземпляров, которую вы можете прочитать здесь: https://developers.google.com/instance-id/

... они важны для обеспечения нормальной работы компонентов Firebase). Мне говорят, что Google Analytics, Crash Reporting и Remote Config используют эти токены сегодня