我正在使用Google Firebase作为餐馆应用 . 我已将持久性设置为true . 本地缓存适用于大多数用例 .
当用户点击该项时,我总是想要读取数据库中的最新值,忽略本地缓存中的内容 .
现在,如果用户已经看过该项,firebase将返回之前的值,并在它返回数据库中的更新值后不久 .
无法找到相关的api来读取db中的当前值,忽略docs中的本地缓存 .
PS:我不想关闭persistenceEnabled .
预先感谢,
这样做有一些技巧 . 一个技巧是在数据库引用上将 keepSynced 标志设置为true . 这将导致服务器将该引用中的更改推送到您的Firebase客户端,无论您当前是否正在侦听该引用的数据 . 这样,只要您有连接,该ref始终与服务器保持同步 . 如果你还没有收到本地缓存中的最新值,这可能不是你想要的 .
keepSynced
要真正绕过本地缓存,您可以使用Firebase的REST API并直接查询后端 . 这允许您执行与SDK允许的大部分相同的操作,但直接通过HTTPS执行 . 有关详细信息,请参阅Firebase docs .
1 回答
这样做有一些技巧 . 一个技巧是在数据库引用上将
keepSynced
标志设置为true . 这将导致服务器将该引用中的更改推送到您的Firebase客户端,无论您当前是否正在侦听该引用的数据 . 这样,只要您有连接,该ref始终与服务器保持同步 . 如果你还没有收到本地缓存中的最新值,这可能不是你想要的 .要真正绕过本地缓存,您可以使用Firebase的REST API并直接查询后端 . 这允许您执行与SDK允许的大部分相同的操作,但直接通过HTTPS执行 . 有关详细信息,请参阅Firebase docs .