【问题标题】:Documentation for Azure Mobile Services offline syncAzure 移动服务脱机同步的文档
【发布时间】:2015-10-14 14:38:12
【问题描述】:

我们正在尝试使用 Azure 移动服务对 iOS 应用进行离线同步,该应用在 iPhone 和 iPad 上运行。

到目前为止,我们只有一个非常简单的应用程序正在尝试与单个表同步。有时它工作正常,有时它非常慢,有时它超时,有时它立即失败并出现内部“找不到表”错误。

我们无法找到有关此框架的任何实际文档。有许多在线教程,但没有深入的文档。

有谁知道我们在哪里可以找到关于如何使用以及如何解决此 API 的更好文档?

当我们的客户端调用错误时,我们是否可以在某个地方查找有关实际问题的更多详细信息?

【问题讨论】:

    标签: ios azure azure-mobile-services


    【解决方案1】:

    主要的两个文档在这里:

    虽然这两个级别仍然相当高,但最后一个应该对故障排除更有帮助。

    此外,该项目在这里是开源的:https://github.com/Azure/azure-mobile-services/tree/master/sdk/iOS,如果您想了解内部结构,可以使用它创建一个工作区。

    同步表操作(插入/更新/删除)错误通常只是 CoreData 的问题,它们只是将内部出现的错误浮出水面。

    对于 Push/Pull,他们可以将错误包装在一个数组中,因为可能有 1/item 被同步,但底层错误应该是可用的。

    Internal table not found 错误可能是由于表未在 CoreData 中定义。当代码无法为给定表创建实体时会发生这种情况(请参阅:https://github.com/Azure/azure-mobile-services/blob/master/sdk/iOS/src/MSCoreDataStore.m#L51)我会检查您如何初始化托管对象上下文以及您的模型是否正确。

    对于速度慢的问题,我猜是,您正在运行一项免费的移动服务,如果一段时间不使用该服务可能会停止运行,并且需要在第一次 API ping 时启动。 (此过程不会发生在基本/标准层)

    此外,iOS 网络超时的默认值为 30 秒,因此合法的网络问题也会让人感觉很慢。

    最后,它也可能是数据量,默认情况下,在 Pull 期间一次会下降 50 条记录(因此,如果您最初同步 5k 行,则需要 500 次才能完成,但之后只会拉动更改,这将是 1-2 次行程。

    【讨论】:

    • 我们已经看到了这两个链接,也不是我所说的实际文档。它们是教程 - 如何让一个简单的应用程序运行的示例,而不是所有可用功能的文档。并且该表已定义,并且有时可以对其进行同步。在其他时候,如果我们没有在 Azure 或客户端上进行任何更改,就会失败。
    • 我同意这个主题需要更详细的文档,并且正在制作中,我相信新的主页会在这里:azure.microsoft.com/en-us/documentation/articles/…,最终会有更详细的文档,而不仅仅是教程.
    • 对于核心数据实体创建错误,我的猜测是您提供的托管对象上下文不是使用 NSPrivateQueueConcurrency 类型创建的,如果它有时会在没有该错误的情况下工作。
    • 我想指出,近 2 年过去了,情况并没有改变(很多)。好样的MS!有源是好的。我发现自己正在查看源代码中的方法以弄清楚它们是如何工作的。
    猜你喜欢
    • 1970-01-01
    • 2016-05-29
    • 2017-02-20
    • 1970-01-01
    • 2017-11-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多