【问题标题】:Parse's CurrentUser doesn't keep refreshed dataParse 的 CurrentUser 不保留刷新的数据
【发布时间】:2015-01-26 12:02:54
【问题描述】:

使用 Parse for iOS,我修改了 _User 的表,使其具有一个名为“Friends”的字段,它是指向其他 _Users 的指针数组(顺便说一下,我还有其他附加字段)。

当我调用PFUser.currentUser() 时,我在用户对象中看不到这个朋友字段。所以我打电话给PFUser.currentUser().fetch()(因为refresh 方法似乎不再存在),我终于在我的currentUser 对象中有friends 字段。

但是,一旦我退出应用程序,该字段就会丢失。它似乎不像当前用户的所有其他字段那样保存在本地。

我应该如何强制刷新缓存的当前用户?

【问题讨论】:

    标签: ios swift parse-platform


    【解决方案1】:

    根据 parse.com 本身和one of their posts,没有其他方法可以让您的用户保持最新状态:

    saveEventually此时不写入任何缓存, 包括currentUser,如果应用程序已重新启动。你需要 定期调用 fetch 以使其保持最新状态。我们知道这 不方便,并且正在寻找使其更好地工作的方法 你。

    【讨论】:

    • 那篇文章是 2 年前的,他们提到他们会调查它。还是没有消息?我必须在每次发布时获取吗?
    • 我知道。但是没有关于任何解决方案的新信息。
    【解决方案2】:

    你确定你想让你的用户对象包含一个像这样的数组的值吗?我显然不知道您使用的应用程序,但我建议您改用 PFRelation。它就像一个数组一样工作,但是 Parse Framework 提供了一堆额外的功能。

    至于您的具体问题,它可能需要处理 Parse。也许他们不会自动检索和保存对象上的数组。这将是我的猜测,因为数组可能包含谁知道其中有多少数据。我仍然不知道为什么他们在获取数据后不会在本地保存该数据。

    我的建议可能有点过头,但很可能是最好的结果。利用本地数据库,例如 CoreData 甚至 ParseLocalDatastore。然后封装 Parse 框架以拥有您自己的 User 对象,您可以在其中存储信息,它还可以通过您的数据库保持持久性。

    【讨论】:

    • 我想使用一个数组来让事情变得非常简单。我不需要查询关系,我只需要查询用户并获取他的所有字段。而且我相信这样查询会更快。
    • 顺便问一下,有没有可能使用 Parse 本地数据库(几个月前推出)的方法?如果我获取当前用户,我需要固定它吗?
    • 对。通过查询用户,我完全理解您在寻找什么,但我只是不确定他们是否在没有先获取的情况下提供该功能。如果您需要获取它,那么我看不出您为什么不想使用 PFRelation,尤其是当您将数据本地存储在数据库中时。从用户那里获取数组的时间与查询关系的时间几乎相同。此外,它还允许您创建自定义查询以查找好友关系中的特定对象。您可以使用 PLD 来获取和固定用户。然后你就可以从数据库中检索信息了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-05
    • 2019-03-18
    • 2021-03-22
    • 2019-02-19
    • 2014-07-24
    • 1970-01-01
    • 2016-02-16
    相关资源
    最近更新 更多