【问题标题】:Checking for New Entries in Firestore - Local Storage检查 Firestore 中的新条目 - 本地存储
【发布时间】:2019-03-10 18:45:15
【问题描述】:

所以我有一个 Firestore 数据库,其中包含我的所有帖子,我将它们在页面加载时推送到商店中,这样我就可以快速导航并且只需要获取一次。

我现在想做的是使用持久状态,因此如果用户打开新窗口或 F5(重新加载)页面,我不需要重新获取它。

问题是我不确定如何在不查询所有帖子的情况下检查 Firestore 中是否有新帖子,而且我还没有找到任何以健康和阅读有效的方式进行操作的方法。

【问题讨论】:

  • 到目前为止你尝试过什么? :)
  • @AndreyPopov 我还没有实现 localStorage 逻辑,因为我不确定如何在不使用大量读取的情况下检查 firestore 和本地存储之间的差异,这会使其效率低下且毫无意义。
  • 应该有办法查询特定时间段的帖子吧?从本地存储中获取最后一篇文章,然后从火力基地获取所有在此之后的文章;)
  • @AndreyPopov 哦,是的,我实际上在帖子创建时保存了一个时间戳,所以我猜逻辑是如果用户第一次访问 -> 获取到 localStorage;第二次访问->检查最新时间戳后的新帖子,好的,我会在速度方面尝试一下,谢谢你的提示:)

标签: firebase vue.js local-storage google-cloud-firestore vuex


【解决方案1】:

没有超级简单的方法 - 最后你有一些数据,而服务器有另一个,你需要检查差异。

如果您只是想弄清楚后端是否有新帖子,而这些新帖子没有加载到您的前端,那么只需获取上一篇帖子的日期,然后向 Firebase 询问此日期之后的所有帖子: )

当然,如果您没有帖子,请询问所有内容。

请记住,您需要手动检查帖子是否被删除;)

【讨论】:

  • 哦,是的,删除部分会使它变得更复杂......或者一般来说,当对帖子进行编辑时,我会尝试找到解决方案:)
【解决方案2】:

使用 onSnapshot 方法的实时更新可用于保持本地数据与服务器同步。如果您最初将其加载到 vuex 中,那么服务器端的后续更改将自动反映。

https://firebase.google.com/docs/firestore/query-data/listen

要跨标签/窗口共享一组数据,您可以查看类似这样的内容

https://github.com/xanf/vuex-shared-mutations

【讨论】:

    猜你喜欢
    • 2022-08-23
    • 2017-03-19
    • 2019-07-02
    • 2020-10-05
    • 2012-03-21
    • 2021-04-09
    • 1970-01-01
    • 2017-04-23
    • 1970-01-01
    相关资源
    最近更新 更多