在移动设备上使用 Floor Flutter 缓存数据,但也想为 Web 构建

Flutter cache data with Floor on mobile but want to build for web as well

我想同时支持 android 和网络。

但是我使用 Floor 来缓存数据,它在 Web 上不受支持。所以我只想在 android 上进行数据库调用,我不想在网络上缓存数据。我想忽略网络上的这些行。

我能以某种方式做到这一点吗?

void loadNews() async {
    emit(Loading());
    await newsCacheRepository.init();  //because of this line on web the data doesn't appear
    var articles = await newsCacheRepository.getArticles();
    emit(Loaded(articles));
    refreshNews();
  }

  Future<void> refreshNews() async {
    var articles = await newsNetworkRepository.getArticles();
    emit(Loaded(articles));
    newsCacheRepository.cacheArticles(articles);
  }

你也可以使用支持web的Hive。或者您可以随时检查平台:

if(!kIsWeb){
 // Your code that doesn't support web
 }

但为了安全起见,您可以将代码包装在 try-catch 块中。

不过我更喜欢用支持web的Hive