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

4

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

1个回答

2

来自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...
            }
        }

    });

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接