在 Java 中丢失推送到 Azure 移动应用程序数据库的更改
Losing changes on push to Azure Mobile Apps database, in Java
我一直在使用 Android 开发一个应用程序,它利用 azure 提供的移动应用程序服务,允许离线同步到他们的 nodeJS easytables。
我对他们的更新方法有疑问。我知道他们根据某个对象的 ID 进行更新。我用新值更新了我的一个对象字段,并将其传递给他们的更新方法,如下所示:
DataHolder.getInstance().InventoryTable.update(inventory).get();
DataHolder 只是一个单例,它包含我所有的表以便于参考。我在更新其位置字段后传入我的库存对象,它写为:
这次更新对我来说似乎不是问题。字段会更新,当我关闭并打开应用程序时,只要我处于离线状态,更改就会保留。
当我尝试使用同步方法将数据同步回 Azure 数据库时出现问题:
syncContext.push().get();
DataHolder.getInstance().InventoryTable.pull(null).get();
更改丢失,全部恢复为在线数据库中当前存储的内容。
我也尝试过:
syncContext.push().get();
DataHolder.getInstance().InventoryTable.pull(null, "inventory").get();
在上面的情况下,更改没有丢失,但信息仍然没有同步到数据库。
我没有对 easytables 进行任何更改。他们使用的是 azure 在您首次创建表时为您提供的默认代码。
我也不确定是否应该提及 updatedAt 字段在我的本地数据库中没有更改。我假设一旦本地数据库和在线数据库之间发生同步,它就会更新。
我看了无数文章,在Whosebug上也有很多问题,但仍然没有解决这个问题。
我不确定我哪里出错了,所以希望你们中的一个能帮助我。
非常感谢。
我今天早上解决了这个问题。
昨天,我更改了在线数据库,并删除了一个列。我没有在 android 应用程序中反映这一点,因此仍在使用此列创建 SQLite 数据库。我一删除它,它就开始正确同步。
我一直在使用 Android 开发一个应用程序,它利用 azure 提供的移动应用程序服务,允许离线同步到他们的 nodeJS easytables。
我对他们的更新方法有疑问。我知道他们根据某个对象的 ID 进行更新。我用新值更新了我的一个对象字段,并将其传递给他们的更新方法,如下所示:
DataHolder.getInstance().InventoryTable.update(inventory).get();
DataHolder 只是一个单例,它包含我所有的表以便于参考。我在更新其位置字段后传入我的库存对象,它写为:
这次更新对我来说似乎不是问题。字段会更新,当我关闭并打开应用程序时,只要我处于离线状态,更改就会保留。
当我尝试使用同步方法将数据同步回 Azure 数据库时出现问题:
syncContext.push().get();
DataHolder.getInstance().InventoryTable.pull(null).get();
更改丢失,全部恢复为在线数据库中当前存储的内容。
我也尝试过:
syncContext.push().get();
DataHolder.getInstance().InventoryTable.pull(null, "inventory").get();
在上面的情况下,更改没有丢失,但信息仍然没有同步到数据库。
我没有对 easytables 进行任何更改。他们使用的是 azure 在您首次创建表时为您提供的默认代码。
我也不确定是否应该提及 updatedAt 字段在我的本地数据库中没有更改。我假设一旦本地数据库和在线数据库之间发生同步,它就会更新。
我看了无数文章,在Whosebug上也有很多问题,但仍然没有解决这个问题。 我不确定我哪里出错了,所以希望你们中的一个能帮助我。
非常感谢。
我今天早上解决了这个问题。 昨天,我更改了在线数据库,并删除了一个列。我没有在 android 应用程序中反映这一点,因此仍在使用此列创建 SQLite 数据库。我一删除它,它就开始正确同步。