我有一个正在运行的Firestore项目。我读和写,并且一切正常,但是主要的问题是,所有这些在没有Internet许可的情况下都可以正常工作。我只有一个权限才能录音。
这怎么可能发生?
清单:
<?xml version="1.0" encoding="utf-8"?>
<manifest
xmlns:android="http://schemas.android.com/apk/res/android"
package="xxx">
<uses-sdk android:maxSdkVersion="28" />
<uses-permission android:name="android.permission.RECORD_AUDIO" />
<application
android:name=".App"
android:allowBackup="false"
android:icon="@mipmap/ic_logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".AuthActivity" android:launchMode="singleTop" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name=".MainActivity" android:launchMode="singleTop">
</activity>
<activity
android:name=".NewNoteActivity"
android:parentActivityName=".MainActivity">
</activity>
</application>
</manifest>
Firestore / RecycleView初始化:
private void setUpRecyclerView() {
Query query = notebookRef.orderBy("priority", Query.Direction.DESCENDING);
FirestoreRecyclerOptions<Note> options = new FirestoreRecyclerOptions.Builder<Note>()
.setQuery(query, Note.class)
.build();
adapter = new NoteAdapter(this, options);
RecyclerView recyclerView = findViewById(R.id.recycle_view);
recyclerView.setHasFixedSize( true );
recyclerView.setLayoutManager( new LinearLayoutManager( this ) );
recyclerView.setAdapter(adapter);
}
答案 0 :(得分:2)
Gradle依赖性也是Java / Kotlin Android应用程序,这意味着它们具有自己的清单。
使用Gradle进行构建时,它将合并所有清单,包括实现中的所有清单。这意味着Firebase的清单已合并到您的清单中。
大多数库都定义了它们在自己的Manifest中使用的权限,因此您不必自己包含它们,Firebase与大多数库一样,因此它在其Manifest中包含INTERNET权限。
编译项目时,Firestore清单将合并到您的项目中,因此您的应用程序现在需要INTERNET权限。