小编Joh*_*man的帖子

如何使用Android对Firestore进行分页?

我阅读了Firestore文档和互联网上的所有文章(stackoverflow)关于Firestore分页但没有运气.我试图在docs中实现确切的代码,但没有任何反应.我有一个基本的数据库项目(超过1250或更多),我想逐步得到它们.通过滚动来加载15个项目(到数据库中的最后一项).

如果使用docs代码:

// Construct query for first 25 cities, ordered by population
Query first = db.collection("cities")
    .orderBy("population")
    .limit(25);

first.get()
    .addOnSuccessListener(new OnSuccessListener<QuerySnapshot>() {
    @Override
    public void onSuccess(QuerySnapshot documentSnapshots) {
        // ...

        // Get the last visible document
        DocumentSnapshot lastVisible = documentSnapshots.getDocuments()
            .get(documentSnapshots.size() -1);

        // Construct a new query starting at this document,
        // get the next 25 cities.
        Query next = db.collection("cities")
            .orderBy("population")
            .startAfter(lastVisible)
            .limit(25);

        // Use the query for pagination
        // ...
    }
});
Run Code Online (Sandbox Code Playgroud)

怎么做?文档没有太多细节.

PS:用户滚动时我需要使用回收站视图(不是列表视图).谢谢

java android firebase google-cloud-firestore

15
推荐指数
2
解决办法
3860
查看次数

Firestore 是否在离线 30 分钟以上时向我们收费?

我读了这个答案,Doug Stevenson(Firebase 工程师)说:

缓存文档读取不收费。

但我在文档中读到:

此外,如果侦听器断开连接超过 30 分钟(例如,如果用户下线),您将被收取读取费用,就像您发出了一个全新的查询一样。

那么如果我离线,即使我没有更改任何文档,我是否会再次收费?那么已经缓存的数据,30分钟后就不再考虑缓存数据了吗?

希望有人可以帮助我解决这个烦人的情况。提前致谢!

firebase google-cloud-firestore

7
推荐指数
1
解决办法
804
查看次数

Firestore 中的 whereEqualTo 查询如何计费?

我有 100 个元素的集合。在此集合中,只有两个元素的字段available设置为 true。如果我使用这个查询:

db.collection("elements").whereEqualTo("available", true);
Run Code Online (Sandbox Code Playgroud)

我得到 2 个元素。我是按 2 次读取操作还是 100 次读取操作计费?

谢谢

firebase google-cloud-platform google-cloud-firestore

5
推荐指数
1
解决办法
519
查看次数

如何在AndroidX中以编程方式在BottomNavigationView中的选项卡之间切换?

我正在使用带有 afragment和 a的以下活动布局BottomNavigationView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:layout_weight="1"
        android:id="@+id/fragment"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:navGraph="@navigation/navigation_bottom"
        app:defaultNavHost="true"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/bottom_navigation_view"
        app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

并在我的导航布局中定义了三个片段:

<navigation
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/navigation_bottom"
    app:startDestination="@id/firstFragment">

    <fragment
        android:id="@+id/firstFragment"
        android:name="fragments.FirstFragment"
        android:label="fragment_first"
        tools:layout="@layout/fragment_first" />

    //The other two fragments
</navigation>
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我使用以下代码:

navController = Navigation.findNavController(this, R.id.fragment);
BottomNavigationView bnw = findViewById(R.id.bottom_navigation_view);
NavigationUI.setupWithNavController(bnw, navController);
NavigationUI.setupActionBarWithNavController(this, navController);
Run Code Online (Sandbox Code Playgroud)

这是我的onSupportNavigateUp方法:

@Override
public boolean onSupportNavigateUp() {
    return Navigation.findNavController(this, R.id.fragment).navigateUp();
}
Run Code Online (Sandbox Code Playgroud)

但是当我按下第二个图标(片段)时,什么也没有发生。如何解决这个问题?谢谢!

android bottomnavigationview android-jetpack androidx

5
推荐指数
1
解决办法
2392
查看次数

如何将可绘制的矢量转换为PNG文件?

有什么方法可以将Drawable文件夹中存在的矢量drawable(.XML文件)转换为.PNG文件?如果可以,可以在Android Studio中完成吗?

png android android-vectordrawable

5
推荐指数
0
解决办法
1964
查看次数

如何在 AndroidX 中设置导航控制器?

我正在使用带有 afragment和 a的以下活动布局BottomNavigationView

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">

    <fragment
        android:layout_width="match_parent"
        android:layout_height="0dp"
        android:id="@+id/fragment"
        android:layout_weight="1"
        android:name="androidx.navigation.fragment.NavHostFragment"
        app:newGraph="@navigation/navigation_bottom"
        app:defaultNavHost="true"/>

    <com.google.android.material.bottomnavigation.BottomNavigationView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/bottom_navigation_view"
        app:menu="@menu/bottom_navigation_menu"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

在我的活动中,我正在尝试设置导航控制器,但出现以下错误:

无法解析方法“setupWithNavController(androidx.navigation.NavController)”

这是我尝试过的:

navController = Navigation.findNavController(this, R.id.fragment);
BottomNavigationView bnv = findViewById(R.id.bottom_navigation_view);
bnv.setupWithNavController(navController); //Error
NavigationUI.setupActionBarWithNavController(this, navController);
Run Code Online (Sandbox Code Playgroud)

我的依赖:

implementation 'android.arch.navigation:navigation-fragment:1.0.0-rc02'
implementation 'android.arch.navigation:navigation-ui:1.0.0-rc02'
Run Code Online (Sandbox Code Playgroud)

我该如何接线?谢谢!

android bottomnavigationview android-jetpack androidx

3
推荐指数
1
解决办法
3537
查看次数

如何阻止MainActivity首先被调用?

在我的AndroidManifest.xml文件中,我有两个活动:

<activity android:name=".activities.LoginActivity"/>
<activity android:name=".activities.MainActivity">
    <intent-filter>
        <action android:name="android.intent.action.MAIN" />
        <category android:name="android.intent.category.LAUNCHER" />
    </intent-filter>
</activity>
Run Code Online (Sandbox Code Playgroud)

根据我的应用逻辑,如果我已登录,则会直接重定向到MainActivity,否则重定向到LoginActivity。第一次打开应用程序时,它LoginActivity是打开的,但在后台MainActivity也被称为。如何阻止这种情况的发生?但是没有以LoginActivity做为主要活动吗?

android android-manifest android-activity

0
推荐指数
1
解决办法
65
查看次数