如何将IndexedDB与Firestore同步?

h7appiyu  于 2022-12-09  发布在  IndexedDB
关注(0)|答案(1)|浏览(182)

我正在使用React、Redux和Firebase/Firestore为网络构建一个工作门户。我已经完成了所有我需要的功能,除了一个。
我希望未注册用户/求职者能够:
1.为职位发布添加书签。
1.做好应聘工作的记录。
1.保留搜索查询的记录。
我正在考虑使用IndexedDB来实现这个功能。特别是Dexie.js,这样做会更简单。但是,这些数据将保存在用户的浏览器中,用户无法在其他浏览器或设备中访问这些数据。因此,我希望为用户提供一个选项,以便在用户登录网站时能够将所有数据保存到Firestore中,我需要自动执行此操作。因此,一旦用户登录,我会将其保存到数据库中。
我考虑过使用匿名身份验证而不是IndexedDB/Firestore,这样所有的数据都将保存到数据库中,一旦用户使用凭据登录,用户就可以声明数据的所有权。然而,这是使用我上面列出的这些功能的一个额外步骤,并不是每个人都喜欢对应用程序进行身份验证,即使用户不需要任何东西。此外,会有那么多的幽灵账户。
所以,正如我在标题中提到的;我希望将所有内容都保存到IndexedDB(我会处理这一点),但如何在用户登录后将IndexedDB中的所有数据同步到Firestore?
我设想过的基本过程会是这样的:
1.用户点击“书签职位发布”
1.应用程序检查用户是否经过身份验证。
1.如果已通过身份验证,请将书签保存到Firestore。
1.如果未进行身份验证,请将书签保存到IndexedDB。
1.如果用户决定登录或注册,请选中IndexedDB并将其与Firestore同步,然后清除IndexedDB。
我如何才能在技术上实现第5步?Firebase中是否有任何内置系统?另外,如果您能想到其他实现此功能的方法,请随时分享您的想法。我是否应该在第5步中使用firebase.auth().onAuthStateChanged()
最后,我应该如何构建Firestore来保存书签作业、已申请作业和搜索历史记录?
我是否应该创建一个bookmarkedJobs集合,并为每个用户复制jobPosts的文档,谁标记了工作岗位?每次雇主更新工作岗位时,我将有一个云函数通过bookmarkedJobs集合,更新它的每个示例?
谢谢你

flvlnr44

flvlnr441#

您可能会对此感兴趣
一直在寻找使我的网站完全静态/pwa,只是使用indexeddb,和一些网络服务的数据处理/存储..这似乎是一个有趣的路线探索。

相关问题