gpt4 book ai didi

带有 Hive 数据库的 Flutter Web

转载 作者:行者123 更新时间:2023-12-04 04:05:44 30 4
gpt4 key购买 nike

我开发了demo 网站应用程序 flutter 并将其上传到我的服务器上,我使用了 Hive database 在网络应用程序上存储一些数据。
最近我发现当我打开网络应用程序并在其上存储一些数据时,
如果我再次使用不同的浏览器,我将看不到以前存储的数据,
Flutter web 上的 Hive 似乎将数据存储在客户端缓存的某处。
我现在有3个问题:

  • hive 数据库的位置在哪里,如何手动访问?
  • 如何解决此问题并使用 Flutter web 在我的服务器上存储数据,以便每个用户都可以看到相同的数据?
  • 我应该在服务器端使用 Dart 来实现这个目标吗?如果是,我可以从哪里开始并找到好的文档?

  • enter image description here
    enter image description here
    这是我保存和加载数据的代码:
    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;
    }}

    最佳答案

    Hive 正确地完成了它的工作,它是一个嵌入式数据库,并且必须为不同的浏览器提供不同的数据库。如果您需要在云中共享此信息,您应该寻找另一种类型的数据库。云数据库将是解决方案。例如,谷歌工具中有免费的解决方案,或者例如创建连接到数据库 SQL 的 API。

    关于带有 Hive 数据库的 Flutter Web,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62541078/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com