flatterweb

svgewumm  于 2021-06-24  发布在  Hive
关注(0)|答案(0)|浏览(344)

我用flutter开发了一个演示web应用程序,并将其上传到我的服务器上,我使用hive数据库在web应用程序上存储了一些数据。
最近我发现,当我打开web应用程序并在其上存储一些数据时,如果我再次使用不同的浏览器,我看不到以前存储的数据,似乎Flitter web上的hive会将数据存储在客户端缓存的某个地方,
我现在有三个问题
配置单元数据库的位置在哪里?如何手动访问?
如何解决这个问题,并将数据存储在我的服务器上,使每个用户都能看到相同的数据?
我应该在服务器端使用dart来实现这个目标吗?如果是,我可以从哪里找到好的文件


这是我保存和加载数据的代码

void _initHiveDB() async {

        if (_isDBInited) {
          return;
        }

        if(!kIsWeb){
          final documentsDirectory = await Path_Provider.getApplicationDocumentsDirectory();
          Hive.init(documentsDirectory.path);
        }

        Hive.registerAdapter(ComplaintModelAdapter(), 0);
        _isDBInited = true;

      }

    Future<bool> saveNewComplaint(ComplaintModel complaintModel)async{

        try{
          if(_complaintBox==null||!_complaintBox.isOpen){
            _complaintBox = await Hive.openBox('Complaints');
          }
          else{
            _complaintBox = Hive.box('Complaints');
          }
          _complaintBox.add(complaintModel);
          return true;
        }
        catch(exc){

          return false;
        }

      }

    Future<List<ComplaintModel>> loadAllComplaints() async {
    try{
          if(_complaintBox==null||!_complaintBox.isOpen){
            _complaintBox = await Hive.openBox('Complaints');
          }
          else{
            _complaintBox = Hive.box('Complaints');
          }
          //Box<ComplaintModel> complaintBox = await Hive.openBox('Complaints');
          //Box<ComplaintModel> complaintBox = await Hive.box('Complaints');
          List<ComplaintModel> complaints = _complaintBox.values.toList();
          return complaints;
        }
        catch(exc){
          return null;
        }}

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题