繁体   English   中英

Qt C++ FireBase 更新唯一值

[英]Qt C++ FireBase Update Unique Value

我在 FreeBase 中有一个数据库。

有一个数据库结构,如图所示

当我想在数据库中进行更改时,我需要更改所有数据,但我只想更改一个数据。 我在下面写的代码更新了所有数据。

manager = new QNetworkAccessManager();

request.setUrl(QUrl("https://xxx/Printers/Syra123/3333.json"));
request.setHeader(QNetworkRequest::ContentTypeHeader, QVariant("application/json"));

QVariantMap newPrinter;

    newPrinter["AvailableModels"] = value.getAvailableModels();
    newPrinter["CurrentBedTemp"] = value.getCurrentBedTemp();
    newPrinter["CurrentNozzleTemp"] = value.getCurrentNozzleTemp();
    newPrinter["Percentage"] = value.getPercentage();
    newPrinter["PrintedTime"] = value.getPrintTime();
    newPrinter["PrinterStatus"] = value.getPrinterStatus();
    newPrinter["PrintingStatus"] = value.getPrintingStatus();
    newPrinter["SelectedBedTemp"] = value.getSelectedBedTemp();
    newPrinter["SelectedModel"] = value.getSelectedModel();
    newPrinter["SelectedNozzleTemp"] = value.getSelectedNozzleTemp();
    newPrinter["SelectedPositionX"] = value.getSelectedNozzleX();
    newPrinter["SelectedPositionY"] = value.getSelectedNozzleY();
    newPrinter["SelectedPositionZ"] = value.getSelectedNozzleZ();
    newPrinter["SelectedPrintSpeed"] = value.getSelectedPrintSpeed();
    newPrinter["SelectedPrintingStatus"] = value.getSelectedPrintingStatus();
    newPrinter["StartingTime"] = value.getStartingTime();

    QJsonDocument jsonDoc = QJsonDocument::fromVariant(newPrinter);

    manager->put(request,jsonDoc.toJson());

当我只写入和发送一个数据时,它会破坏数据库中的所有其他值,只剩下我发送的数据。 如何只更改我想要的数据而不删除数据库中的数据?

你必须重组你的代码,创建另一个 class 来保存 getAvailableModels()、getCurrentBedTemp()、getCurrentNozzleTemp()、getPercentage() etc 的值/数据,来自 QNetworkReply *reply,reply->readAll() through (get) to populate QLineedit(s),然后修改想要的QLineedit并放到update。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM