没有互联网许可,Firestore如何工作?

时间:2018-10-17 16:52:02

标签: android firebase

我有一个正在运行的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);
}

1 个答案:

答案 0 :(得分:2)

Gradle依赖性也是Java / Kotlin Android应用程序,这意味着它们具有自己的清单。

使用Gradle进行构建时,它将合并所有清单,包括实现中的所有清单。这意味着Firebase的清单已合并到您的清单中。

大多数库都定义了它们在自己的Manifest中使用的权限,因此您不必自己包含它们,Firebase与大多数库一样,因此它在其Manifest中包含INTERNET权限。

编译项目时,Firestore清单将合并到您的项目中,因此您的应用程序现在需要INTERNET权限。