Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-core/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Firebase Firestore-获取Android上的同步状态_Android_Firebase_Google Cloud Firestore - Fatal编程技术网

Firebase Firestore-获取Android上的同步状态

Firebase Firestore-获取Android上的同步状态,android,firebase,google-cloud-firestore,Android,Firebase,Google Cloud Firestore,我开始在Android应用程序中使用Firebase Firestore数据库。Firestore实现的主要用例是在脱机模式下创建一组文档,然后在设备联机时上载它们。问题是“设备联机时间”有限,因此我需要向用户提供同步状态指示器。Firebase支持部门的响应 当您在使用脱机数据时写入Firestore时,当数据存储在本地时会触发侦听器,当数据存储在服务器上时会再次触发侦听器,如前所述。一个可能的解决方案是向用户显示数据的当前状态或推送到服务器的项目的百分比 这不是一个简单的解决方案,但它是有效

我开始在Android应用程序中使用Firebase Firestore数据库。Firestore实现的主要用例是在脱机模式下创建一组文档,然后在设备联机时上载它们。问题是“设备联机时间”有限,因此我需要向用户提供同步状态指示器。

Firebase支持部门的响应 当您在使用脱机数据时写入Firestore时,当数据存储在本地时会触发侦听器,当数据存储在服务器上时会再次触发侦听器,如前所述。一个可能的解决方案是向用户显示数据的当前状态或推送到服务器的项目的百分比

这不是一个简单的解决方案,但它是有效的

firestore.collection(COLLECTION)
.whereEqualTo(KEY, VALUE) // select documents created by particular device
    .addSnapshotListener((querySnapshot, e) -> {
        if (e != null) {
            // ERROR
            return;
        }

        boolean fromCache = querySnapshot.getMetadata().isFromCache();
        if (!fromCache) {
            // SYNC DONE
        } else {
            int connectivityStatus = NetworkUtil.getConnectivityStatus(getApplicationContext());
            if (connectivityStatus == NetworkUtil.TYPE_NOT_CONNECTED) {
                // WAITING ON CONNECTION...
            } else {
                // SYNCING...
            }
        }

    });