【问题标题】:Delete documents within a collection cloud firestore删除集合 Cloud Firestore 中的文档
【发布时间】:2018-03-22 08:47:03
【问题描述】:

我正在使用以下教程https://firebase.google.com/docs/firestore/manage-data/delete-data 在离线时删除集合中的所有文档。 我遇到的问题是Tasks.await(batch.commit()); 阻塞并且离线时不返回。据我从这里https://developers.google.com/android/reference/com/google/firebase/firestore/WriteBatch 了解到,WirteBatch 操作应该离线工作。

【问题讨论】:

    标签: android google-cloud-firestore


    【解决方案1】:

    当我们说一个操作“离线工作”时,它可能并不意味着你认为它的意思。

    离线执行WriteBatch 的结果将立即反映在您执行的任何侦听器或get() 操作中。因此,如果您在写入批处理中删除了一个文档,然后尝试稍后读取它(同时仍处于离线状态),它似乎已被删除。

    但是,在写入批处理传播到服务器之前,Task 不会完成。

    【讨论】:

    • 嗨@hatboysam。所以这意味着batch.commit() 将是即时的,Tasks.await(...) 将等待后端,因此在离线时将无法工作。对吗?
    • @edmond 是的,就是这样。 batch.commit() 会立即影响离线文档缓存。
    最近更新 更多