我问自己很多关于为我未来的 react-native 应用程序选择数据库的问题,因为我想要一个存储应用程序静态数据的本地数据库。我还想将用户创建的数据存储在数据服务器上。
- 我认为使用 Realm 进行本地存储
- 用于远程存储的MongoDB
问题:我不知道如何同步远程数据,因为当用户脱机时,我希望数据存储在本地,然后在脱机时,我希望将数据发送到服务器
这两个数据库可以相互使用,还是MongoDB能够在本地存储数据?
考虑使用AsyncStorage进行本地存储,并使用AppState将其与您选择的数据库同步(mongoDB是一个很好的远程选择,但在本地不起作用)。 它们都是本机模块。 AsyncStorage
像localStorage
一样工作. 当应用从foreground
过渡到background
时,是在本地和远程保存数据的好时机。 它看起来像这样。
_handleAppStateChange = (nextAppState) => {
if (this.state.appState.match(/inactive|background/) && nextAppState === 'active') {
console.log('App has come to the foreground!')
this.setState({appState: AppState.currentState});
}
else if (this.state.appState.match(/active|background/) && nextAppState === 'inactive') {
console.log('App has gone to background!')
this.setState({appState: AppState.currentState});
}
}
文档非常好。
我不确定您将在本地数据库中处理多少数据,但MongoDB Stitch可以成为解决方案之一。
缝合移动同步。