Expo文件系统与异步存储



我正在开发一款具有React Native和Expo管理工作流的移动应用程序。该应用程序应该是一本歌曲书,里面有歌曲和赞美诗的歌词。所有歌词都存储在Firebase的Firestore数据库中,客户端可以在应用程序中加载它们。然而,我也想实现离线功能,所有歌词都存储在用户的设备上。

在研究如何实现这一点时,我遇到了两个包:ExpoFileSystem和AsyncStorage。我想知道其中哪一个更适合我的申请。我试图找到一些比较,但找不到任何相关的东西。有人能给我建议吗?

我读到AsyncStorage的数据存储容量上限为6MB。我做了一些计算,发现如果我的数据有两倍的空间,那么总大小将在2MB左右(我存储在.txt文件中的一首歌的歌词在500-900字节之间,大约有1000首歌。因此,如果我使用1000*800字节=0.7 MB,如果我将歌曲数量增加一倍,这可能不会发生,大约是1.5 MB(

歌曲作为对象存储在数据库中,我使用.txt文件只是为了计算大小,所以我认为最终的大小会更小。

那么,有没有人能告诉我FileSystem和AsyncStorage之间的区别,并建议我为我的项目选择哪一个?

您不必自己存储它们,您可以直接从Firestore本地持久性访问它们。

从Firestore文档:此功能缓存您的应用程序正在使用的Cloud Firestore数据的副本,以便您的应用可以在设备脱机时访问数据。您可以写入、读取、侦听和查询缓存的数据。当设备重新联机时,Cloud Firestore会将应用程序所做的任何本地更改同步到Cloud Firestore后端。

此处为完整文档。

这里还有一个很好的教程。

最新更新