Xamarin Forms 和 Azure Easy Tables 同步问题

2023-12-03

我在 Visual Studio 中使用 Azure 作为后端开发 Xamarin.Forms 应用程序已经有一段时间了,我遇到了一个非常奇怪的问题。

请注意,我正在遵循本文中提到的方法blog

由于某些奇怪的原因,PullAsync() 方法似乎有一些奇怪的问题。我创建和同步的任何数据都只能由 PullAsync() 从该解决方案中提取。我的意思是,如果我创建另一个访问完全相同后端的解决方案,它可以执行它自己的创建/同步数据,但不会带来另一个解决方案生成的数据,即使它们似乎都有完全相同的访问。这似乎是某种安全功能/问题,但我不太明白它的意义。

还有其他人遇到过这种情况吗?有解决方法吗?如果我想要创建另一个解决方案来出于某种原因访问相同的系统/数据,这可能会导致问题。


由于某些奇怪的原因,PullAsync() 方法似乎有一些奇怪的问题。我创建和同步的任何数据都只能由 PullAsync() 从该解决方案中提取。

根据你提供的教程,我发现相关的PullAsync正在使用增量同步.

await coffeeTable.PullAsync("allCoffees", coffeeTable.CreateQuery());

增量同步:

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

这是我的测试,您可以参考它以更好地理解增量同步:

客户 :await todoTable.PullAsync("todoItems-02", todoTable.CreateQuery());

客户端SDK会检查是否有id等于的记录deltaToken|{table-name}|{query-id}来自__configSQLite 本地存储的表。

enter image description here

如果没有记录,那么SDK会发送如下请求来拉取您的记录:

https://{your-mobileapp-name}.azurewebsites.net/tables/TodoItem?$filter=(updatedAt%20ge%20datetimeoffset'1970-01-01T00%3A00%3A00.0000000%2B00%3A00')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true

Note: the $filter将被设置为(updatedAt ge datetimeoffset'1970-01-01T00:00:00.0000000+00:00')

当有记录时,SDK 会拾取该记录value作为最新的updatedAt时间戳并发送请求,如下所示:

https://{your-mobileapp-name}.azurewebsites.net/tables/TodoItem?$filter=(updatedAt%20ge%20datetimeoffset'2017-06-26T02%3A44%3A25.3940000%2B00%3A00')&$orderby=updatedAt&$skip=0&$top=50&__includeDeleted=true

根据我的理解,如果您在不同的移动客户端中使用相同的查询ID(非空)处理相同的逻辑查询,则需要确保本地数据库是由每个客户端新创建的。另外,如果您想选择退出增量同步,请传递null作为查询 ID。在这种情况下,每次调用时都会检索所有记录PullAsync,这可能是低效的。想要了解更多详情,您可以参考离线同步的工作原理.

此外,您可以利用fiddler用于在调用时捕获网络跟踪PullAsync,以便解决您的问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Xamarin Forms 和 Azure Easy Tables 同步问题 的相关文章

随机推荐

  • 对 thread_position_in_grid 感到困惑

    我正在 macOS 上的 Metal 中开发计算着色器 我正在尝试做一些非常基本的事情来了解它们是如何工作的 我看到一些我不明白的输出 我想我应该首先尝试生成一个简单的二维渐变 红色通道将沿宽度从 0 增加到 1 绿色通道将沿高度从 0 增
  • Ajax/php 标头:位置

    我有一个带有 Ajax 登录表单的 Bootstrap 模式 显示错误 一切正常 直到结果登录 php is header Location index php 我这样处理结果 var hr new XMLHttpRequest Set c
  • 为 R 中所有列的多行创建摘要(第 90 个百分位)统计数据的新数据框

    我正在开展一个学校项目 有一个包含 4 000 行的数据集 有 40 名参与者 每人大约有 100 行 我想创建一个数据集 将每个参与者的行折叠成汇总统计数据 最好是第 90 个百分位 我知道如何用 dplyr 找到平均值 Means lt
  • 如何在详情页面绑定实体对象

    我正在使用 SAP UI5 开发一个主细节 Fiori 应用程序 由于详细信息包含 40 多个列 因此我为主表和详细信息制作了单独的 OData 服务 在母版页中 数据正确输入 现在我的任务是 在任何表格行上 当用户单击 详细信息 时 将打
  • Python:酸洗模块的替代方案

    我正在编写我的程序 大蒜模拟器 其中用户创建一个模拟 然后他可以按照自己的意愿操纵它 然后可以将其保存到文件中 我最近尝试实现保存功能 我想到的自然的事情就是腌制Project对象 其中包含整个模拟 问题是 Project对象还包括一个模块
  • self 类型注释中 this 和 self 之间的区别?

    在各种 Scala 文献中 我看到一些使用 this 的自我类型注释 以及其他使用 self 的自我类型注释 trait A this B gt trait A self B gt 使用 this 或 self 之间有什么真正的区别吗 你用
  • 扩展类继承静态变量值(PHP)吗?

    如果我有一个包含静态变量的基类 然后设置这个静态变量 然后有一个扩展基类的类 扩展类是否会保留我已经在基类中设置的静态变量的值 是的 虽然它们是不同的变量 但两个类中的静态变量位于同一引用集中 不过 您可以通过使用引用分配来破坏此引用集 或
  • 如何按索引组合两个 RDD[String]?

    我正在使用 Spark RDD 并创建了两个相同长度的数组 一个是推文的小时数 另一个是推文的文本 我希望将它们组合成一个数据结构 也许是一个元组 我可以按时间和推文文本进行过滤 但在组合后我在如何执行此操作方面遇到了困难 scala gt
  • 以非交互方式运行 Build.pl

    When Build pl某些 Perl 项目的运行在以前未用于 Perl 开发的系统上 如果用户想要在安装前添加某些包 它会一次又一次地中断 有什么方法可以让非交互式默认运行Build PL无需观看几个小时并一次又一次地按 输入 键 PE
  • 重试承诺步骤

    假设我有以下 Promise 链 var result Promise resolve filename then unpackDataFromFile then transformData then compileDara then wr
  • 返回并重新加载页面

    我的 ASP NET Framework 4 Web 项目中的导航存在问题 我在主页上有一个登录字段 母版页还包含一个 ContentPlaceHolder 它动态包含其他 aspx 页面 我从页面 a 开始并导航到页面 b 当我登录页面
  • 使用 iOS 7 在 iPad 上以 2x 模式启动应用程序

    在 iOS 7 之前 在 iPad 上打开的 iPhone 应用程序通常以 2x 模式启动 iOS 7 似乎强制所有应用程序 即使它们不是为 iPad 设计的 以 1x 模式启动 我们如何强制我们的应用程序在使用 iOS 7 的 iPad
  • Tensorflow 准确度为 0.99,但预测结果很糟糕

    也许我的预测是错误的 这是该项目 我有一个灰度输入图像 我正在尝试对其进行分割 分割是一个简单的二元分类 考虑前景与背景 所以基本事实 y 是一个由 0 和 1 组成的矩阵 所以有 2 个分类 哦 输入图像是一个正方形 所以我只使用一个名为
  • 是否可以在 javascript 中像媒体查询一样使用 css?

    我想知道是否有一种方法可以使用媒体查询javascript就像我在 CSS 中使用它一样 我想处理设备宽度 or 方向并触发一个函数 现在我正在使用这段代码 window onresize function event test for v
  • 字典中元素的配对组合,不重复

    在Python中 我有一个像这样的字典 pleio firstLine enf1 54 set enf2 48 free enf3 34 set enf4 12 free secondLine enf5 56 bgb enf6 67 kio
  • int[ ] 中未分配的值

    想知道在 C 中未分配的整数的值是多少int 通常是 Example int arr 5 arr 1 2 arr 3 4 for int i 0 i lt 5 i cout lt
  • 将 UTC 转换为当前区域设置时间

    我正在从 Web 服务下载一些 JSON 数据 在此 JSON 中 我有一些日期 时间值 一切都以 UTC 时间为准 如何解析此日期字符串 以便结果 Date 对象位于当前区域设置中 例如 服务器返回 2011 05 18 16 35 01
  • jQuery UI Datepicker:当今天也被选中时不突出显示

    我正在使用jQuery 日期选择器选择日期 它工作正常 除了我想更改 1 个默认行为 当您选择一天时 所选日期会突出显示 我喜欢 当前日期也被突出显示 但使用不同的 css 样式 我也喜欢 但是 如果您选择当天 则突出显示 因为它是当天 因
  • git push 尝试推送 git ls-files 中未列出的文件

    我不小心在我的仓库中提交了一个不必要的大子文件夹 xxxxx 当我在推送时意识到这一点时 我中途停止了推送 然后我使用以下命令从存储库中删除了不必要的文件夹 xxxxx git rm r cached xxxxx 但同时ls files不显
  • Xamarin Forms 和 Azure Easy Tables 同步问题

    我在 Visual Studio 中使用 Azure 作为后端开发 Xamarin Forms 应用程序已经有一段时间了 我遇到了一个非常奇怪的问题 请注意 我正在遵循本文中提到的方法blog 由于某些奇怪的原因 PullAsync 方法似