Android&Firebase|插入数据到Firestore时出现CursorWindow容纳不下行的问题
创始人
2024-08-19 15:00:34
0

此问题通常在向Firestore插入大量数据时发生,因为Android中的CursorWindow缓存区间限制了返回结果的大小,而插入过程要求将所有数据获取并返回,因此如果数据量太大,CursorWindow将无法存储这些数据并抛出此异常。

解决此问题的一种方法是,在插入过程中分批处理数据,即将待插入数据分割成较小的块并一次插入一部分,而不是一次插入所有数据块。下面是示例代码:

// 数据源 List dataList = ...

// 每批数据的大小 int batchSize = 500;

// 分批插入 for (int i = 0; i < dataList.size(); i += batchSize) { int end = Math.min(dataList.size(), i + batchSize); List batch = dataList.subList(i, end);

FirebaseFirestore.getInstance().runTransaction(new Transaction.Function() {
    @Override
    public Void apply(Transaction transaction) throws FirebaseFirestoreException {
        for (Data data : batch) {
            DocumentReference docRef = FirebaseFirestore.getInstance().collection("collection_name").document(data.getId());
            transaction.set(docRef, data);
        }
        return null;
    }
});

}

这样,我们将数据分成了较小的块,并通过Transaction批量插入数据,不需要将所有数据获取并返回。

相关内容

热门资讯

一分钟辅助!呼兰麻将有挂么,微... 一分钟辅助!呼兰麻将有挂么,微扑克ai辅助,小程序雀神麻将来牌技巧(有挂解密)1、呼兰麻将有挂么机器...
wpk数据分析!德扑软件透明挂... wpk数据分析!德扑软件透明挂,AApoker一般真的有挂(详细辅助软件教程);1、下载好wpk数据...
2分钟攻略!手机贵阳捉鸡辅助工... 2分钟攻略!手机贵阳捉鸡辅助工具,aapoker有猫腻,雀神小程序怎么调胜率(有挂辅助)1、在手机贵...
wpkplus有辅助器!clo... wpkplus有辅助器!cloudpoker软件透明挂,aapOKER一贯真的有挂(详细辅助透视脚本...
十分钟攻略!都莱大菠萝辅助器,... 十分钟攻略!都莱大菠萝辅助器,德州之星app有外挂,雀神辅助器开了没效果(有挂解说)暗藏猫腻,小编详...
gg发牌控制!哈糖大菠萝十三张... gg发牌控制!哈糖大菠萝十三张软件透明挂,AAPOker都是真的有挂(详细辅助软件教程)1、gg发牌...
wepoke辅助软件下载!fi... wepoke辅助软件下载!fish poker软件透明挂,众合推扑克一贯真的有挂(详细代打ai辅助教...
三分钟辅助!闽游十三水有辅助器... 三分钟辅助!闽游十三水有辅助器吗,微扑克辅助是有,广东雀神智能辅助插件下载(有挂介绍)1、玩家可以在...
wepoke外 挂显示!wep... wepoke外 挂显示!wepower软件透明挂,wePOke一直真的有挂(详细代打ai辅助教程)1...
6分钟科普!齐聚棋牌有挂吗,约... 您好,齐聚棋牌有挂吗这款游戏可以开挂的,确实是有挂的,需要了解加微【757446909】很多玩家在这...