将数据保存到Baqend中的数据库

将数据保存到Baqend中的数据库,baqend,Baqend,我似乎不知道如何更新数据库中的数据: 代码如下: handleSubmit(event) { event.preventDefault(); var fulladdress = this.state.address1 +" "+ this.state.city +", "+ this.state.state +" "+ this.state.zip; Geocoder.getFromLocation(fulladdress).then( json =>

我似乎不知道如何更新数据库中的数据:

代码如下:

  handleSubmit(event) {
    event.preventDefault();
    var fulladdress = this.state.address1 +" "+ this.state.city +", "+ this.state.state +" "+ this.state.zip;
    Geocoder.getFromLocation(fulladdress).then(
      json => {
        var location = json.results[0].geometry.location;
        //alert(location.lat + ", " + location.lng);
        var geo = new db.GeoPoint(location.lat, location.lng)
        var updatecompany = new db.Companies({
          id: '16747fce-f0b1-422b-aa60-220c2dccac58',
          name: this.state.name,
          logo: '',
          photo: '',
          address1: this.state.address1,
          address2: this.state.address2,
          city: this.state.city,
          state: this.state.state,
          zip: this.state.zip,
          geo: geo,
        });

        updatecompany.update().then(() => {
          alert("company saved!")
        })
      },
      error => {
        alert(error);
      }
    );
  }
在这个文件中,我希望更新公司简介的数据。首先,我们从Google Maps API获取lat/long

当我运行此命令时,我得到以下错误:未处理的拒绝实体存在错误:实体/db/companys/16747fce-f0b1-422b-aa60-220c2dcac58由另一个数据库管理

我尝试删除ID,但出现以下错误:未处理的拒绝持久化错误:无法插入新对象


我需要用钥匙还是别的什么?或者id是否传递到对象外部或其他地方?

如果要修改现有对象,应从数据库获取现有对象,然后对其进行修改。这样可以确保覆盖不会丢失任何更新

db.Companies.load(id).then(company => {
     company.name = this.state.name;
     ...
     return company.update();
});
或者,您可以让托管db对象应用您的更改并强制保存它。这将覆盖任何现有数据库状态,并仅保存更改

//This will get the current managed object for the Id
//That object may not have loaded state
company = db.Companies.ref(id);
company.name = this.state.name;
//The force overwrites any previously stored state
//This may result in lost updates when the object is concurrently saved by different clients
company.save({force: true});

我想我明白你在说什么。。。澄清一下:baqend只会更新我们传递的键/值?那么在您的示例中,这只是更新company.name?而且我不应该传递空字符串,因为我们只需要传递将要更改的内容?这非常有效,我在想你必须构建一个对象,然后以某种方式将它传递回baqend,这种方式要简单得多!如果您通过find或load调用预先加载了对象,ref只返回这个先前加载的对象。因此,之后可以轻松应用更新。