【发布时间】:2019-07-19 22:29:59
【问题描述】:
我注册了一个监听器,它监听查询的变化。当一个文档被删除/删除时,它需要检查更改是否是本地的。如果更改是本地更改,则会显示一条消息。如果它不是本地的,则该对象将被删除。
问题是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;
}
}
【问题讨论】:
-
如果您认为 SDK 存在错误,您应该将完整的复制说明发送给 Firebase 支持。它应该包含minimal 和complete 代码。 firebase.google.com/support/contact/bugs-features
标签: android firebase google-cloud-firestore listener