我是一个初学者开发和我目前正在开发一个问答应用程序。每个测验包含50个问题,我使用房间数据库存储它们。我有硬币,星星,分数和每个测验的完成问题的数量(还有用户的信息),我想保存。我仍然不知道什么是最好的方法。
我在考虑将sharedpreferences和firestore结合起来保存用户的进度和信息,sharedpreferences保存在本地,firestore这样当用户登录到另一个设备时,他所有的进度和信息都将被检索(并保存在sharedpref中)。
(**当用户仅使用google登录时,数据将保存在firestore中)
现在我的问题是:在保存数据时,我是否可以合并sharedpref和firestore?这样做是个好主意吗?如果不是,我应该只使用firestore吗?
2条答案
按热度按时间mznpcxlj1#
firestore有一个功能,它会自动将数据存储在设备的缓存中,因此当您的用户脱机时,他们仍然可以查看上次访问的内容。既然firebase已经在处理用户离线的问题,我建议使用firestore-only路线。
您可以在此处阅读有关firestore脱机缓存的更多信息(观看视频,非常棒):https://firebase.google.com/docs/firestore/manage-data/enable-offline
l5tcr1uw2#
保存数据时是否可以合并sharedpref和firestore?
是的,你可以,但我看不到任何好处。你说:
当用户登录到另一个设备时。
无论用户使用什么设备,都可以获得数据意味着每次用户关闭应用程序时,您都应该将进度保存在firestore中。所以我不明白你为什么要用另一个数据结构。除此之外,SharedReference不会随应用程序卸载而保留。SharedReferences数据始终被删除。
如果您想将进度存储在SharedReferences中,并且只在测试完成后才将测试提交给firestore,那么这将是一个非常好的主意。这样,您就只需要执行一次写操作就可以了,这听起来很完美。但是,此解决方案不提供使进度可用的功能,无论用户使用什么设备,因为它只存储在单个设备上。