我刚刚将一个应用程序从Firebase 9.0.0更新到Firebase 9.0.2。 我使用短信+广告。
compile 'com.google.firebase:firebase-messaging:9.0.2'
compile "com.google.firebase:firebase-ads:9.0.2"
现在已经出现了很多不受欢迎的许可
android:name="android.permission.READ_PHONE_STATE"
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
我没有在任何地方添加这些权限,因此它们必须来自Firebase。 我知道我的客户不喜欢这些权限,所以我用
删除了它们<uses-permission
android:name="android.permission.READ_PHONE_STATE"
tools:node="remove" />
<uses-permission
android:name="android.permission.READ_EXTERNAL_STORAGE"
tools:node="remove" />
<uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
tools:node="remove" />
我的应用仍然有效,短信和广告仍有效,但我仍然怀疑我的怀疑。
为什么Firebase会添加这些权限,是否可以像我一样删除它们?
答案 0 :(得分:5)
此问题已在12.0.1中修复。来源https://developers.google.com/android/guides/releases
2018年3月28日 - Verison 12.0.1
12.0.1中修复的问题:
- 修复导致虚假Android lint错误声明的问题 GoogleSignIn和CredentialsClient仅限内部使用。
- 添加缺失 minSdkVersion in -license工件,以防止自动包含 READ_PHONE_STATE和READ_EXTERNAL_STORAGE权限。
- 还原 运行时链接-license工件的唯一包名称 影响了一些构建系统(例如Ionic Pro)兼容性问题。
- 恢复在12.0.1中被混淆的一些字段名称,即 firebase-firestore和中的@PropertyName注释的value()方法 火力的数据库。
答案 1 :(得分:0)
android:name="android.permission.READ_PHONE_STATE"
android:name="android.permission.READ_EXTERNAL_STORAGE"
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
这些权限不同,它们未在fcm中使用。
PHONE_STATE 了解手机当前状态的权限
和 READ_EXTERNAL_STORAGE 和 WRITE_EXTERNAL_STORAGE 可在您的应用中添加和删除内存中的文件,如果您没有使用这些功能,可以将其删除。