Azure移动同步,数据未更新

时间:2018-08-08 17:21:19

标签: azure-mobile-services

我有一个使用Azure Mobile Sync的iOS / Android应用程序。大多数情况下,一切都会按您的预期进行,但是有一种情况困扰着我很多。情况是:

电话A创建一条记录。 电话B创建一条记录。 电话A更新电话B的记录。 电话B更新电话A的记录。 电话C从云端正确获取记录创建和最新更新。 电话A拥有原始记录,但未能提取电话B的更新。 手机B拥有原始记录,但无法获取手机A的更新。

我已经确认没有同步冲突,并且正在提取数据,并且在大多数情况下不会发生这种情况。通常,电话A / B / C都已正确更新。我从Android手机中提取了sqlite数据库,并检查了_operations表,但没有看到有关记录的任何同步操作。就像系统认为它已经是最新的并且不尝试同步。

是否有一种方法可以从云中强制提取所有内容?谢谢!

1 个答案:

答案 0 :(得分:1)

  

这就像系统认为它已经是最新的并且不尝试同步。

     

是否有一种方法可以从云中强制提取所有内容?谢谢!

我假设您使用的增量同步描述如下:

  

增量同步:拉操作的第一个参数是仅在客户端上使用的查询名称。如果您使用非空查询名称,则Azure Mobile SDK将执行增量同步。 每次拉操作返回一组结果时,该结果集中的最新updateAt时间戳存储在SDK本地系统表中。随后的拉取操作仅检索该时间戳之后的记录

您可以关注How offline synchronization works 的详细信息。

您可以尝试传递null作为查询ID,然后将在每个PullAsync请求中检索所有记录,如下所示:

await todoTable.PullAsync(null, syncTable.Where(u => u.xxx == "xxx"));

此外,您可以在遇到此问题时利用提琴手捕获网络跟踪,然后可以检查特定的请求参数以缩小此问题的范围。