首页 文章

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

提问于
浏览
1

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

1 回答

  • 1

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

相关问题