Firestore 的 hasPendingWrites() 对已删除的文档返回 false

Tru*_*lNL 7 android listener firebase google-cloud-firestore

我注册了一个侦听器,用于侦听对查询的更改。当一个文档被移除/删除时,它需要检查更改是否是本地的。如果更改是本地更改,则会显示一条消息。如果它不是本地的,则该对象将被删除。

问题是在侦听器中签入时hasPendingWrites()返回false。这是为什么?根据 Firestore 文档,这应该是true第一次,因为在更改本地缓存时会立即触发侦听器。

AsyncArrayHandler 的简化代码,在监听器激活时调用:

for (DocumentChange documentChange : queryDocumentSnapshots.getDocumentChanges())
{
    changeIsMadeLocal = documentChange.getDocument().getMetadata().hasPendingWrites();
    switch (documentChange.getType())
    {
        case REMOVED:
            if (changeIsMadeLocal)
            {
                //do stuff here
            }
        break;
    }
}
Run Code Online (Sandbox Code Playgroud)

Tru*_*lNL 4

对于每个人(看看视图,几乎没有人)遇到与我相同的问题,Firebase 正在调查它,似乎这是一个仅存在于某些设备和模拟器上的错误。他们不太确定它来自哪里,但正在试图找出答案。

当他们给我更多信息时,我会编辑这个答案。