Android Firebase cache.indexOn在应用程序颤振中
我将Firebase用于我的颤振应用程序,并创建了一个.IndexOn 查询正在使用OrderByChild,问题是在加载查询时,它只加载现金 例如,当我在设备1上打开应用程序,同时通过另一个设备2创建记录时。设备1仅在删除应用程序缓存时加载新数据 我使用的是PersienceEnabled,但问题只发生在使用.IndexOn的查询中Android Firebase cache.indexOn在应用程序颤振中,android,firebase,flutter,firebase-realtime-database,Android,Firebase,Flutter,Firebase Realtime Database,我将Firebase用于我的颤振应用程序,并创建了一个.IndexOn 查询正在使用OrderByChild,问题是在加载查询时,它只加载现金 例如,当我在设备1上打开应用程序,同时通过另一个设备2创建记录时。设备1仅在删除应用程序缓存时加载新数据 我使用的是PersienceEnabled,但问题只发生在使用.IndexOn的查询中 "users": { ".indexOn": ["isPsycho","currentPsy
"users": {
".indexOn": ["isPsycho","currentPsycho"]
}
我正在使用的查询
await databaseReference
.orderByChild('isPsycho')
.equalTo(true)
.once()
.then((DataSnapshot snapshot)
不幸的是,将磁盘缓存与
once()
结合使用可能会将过时的数据返回给侦听器。请参阅我的答案以了解原因:
请参阅解决此问题的新get()
方法。get()
方法在flatter中还不可用,因此目前您唯一的选择是使用onValue()
或禁用磁盘持久性
我刚刚将此功能请求添加到Github repo中,因此请在那里查看最新状态。能否显示加载数据的代码?我强烈建议遵循中的指导,以最大限度地增加我们能够提供帮助的机会。@FrankvanPuffelen好的,更新了问题。谢谢,onValue为我的场景工作!!!