【发布时间】:2022-07-18 05:25:53
【问题描述】:
我正在开发一个使用 React Native 和 Expo 托管工作流的移动应用程序。该应用程序应该用作带有歌曲和赞美诗歌词的歌本。所有歌词都存储在 Firebase 的 Firestore 数据库中,客户端可以将它们加载到应用程序中。但是,我还想实现离线功能,所有歌词都存储在用户的设备上。
在研究如何实现这一点时,我遇到了两个包:Expo FileSystem 和 AsyncStorage。我想知道其中哪一个更适合我的应用程序。我试图找到一些比较,但找不到任何相关的东西。谁能给我建议?
我了解到 AsyncStorage 的数据上限为 6MB。我做了一些数学运算,发现如果我的数据有双倍空间,总大小将在 2MB 左右。 (我存储在 .txt 文件中的一首歌曲的歌词在 500-900 字节之间,大约有 1000 首歌曲。所以如果我取 1000 * 800 字节 = 0.7 MB 并且如果我将歌曲数量翻倍,这可能不会发生,大约 1.5 MB)
歌曲作为对象存储在数据库中,我使用.txt文件只是为了计算大小,所以我认为最终的大小会更小。
那么,有没有人可以告诉我 FileSystem 和 AsyncStorage 之间的区别,并建议我为我的项目选择哪一个?
【问题讨论】:
-
这也是一个可行的选择 (github.com/mrousavy/react-native-mmkv) 看看。它比 AsyncStorage 快约 30 倍,并且是同步的
-
(github.com/mrousavy/react-native-mmkv/issues/323) 这为您提供了有关内存限制的更多信息,也比异步存储更好
-
哇,谢谢,看起来真的很不错,它看起来比 AsyncStorage 好多了:o 速度比较令人兴奋:o 谢谢!
标签: react-native expo filesystems mobile-application asyncstorage