【问题标题】:Storing information on Parse在 Parse 上存储信息
【发布时间】:2017-06-30 01:37:47
【问题描述】:

我在这里担心的是,我不知道我是否对此有正确的理解,我需要你的帮助来帮助澄清。我搜索了堆栈溢出,但找不到此信息。我只是要求在这里重新澄清理论。

问题是:我正在开发一个从 Parse 检索信息的应用程序。解析表包含名称(字符串)、动物(字符串)、最喜欢的(布尔值)。我正在努力在应用程序上创建一个收藏夹部分,如果用户在以下信息上单击收藏夹,它将设置以下信息收藏夹 = true。

这里的问题是,因为我正在使用 Parse,比如说,如果用户点击 Bob(name)、Dog、(animal)、true(favorite)。它将最喜欢的内容从 false 更改为 true。然后我会转到“收藏夹”部分,它将读取整个数据库并查找是否最喜欢 == true 并显示它。

由于它是解析,这意味着每个人都会收到相同的信息,比如 Person 1 在 Gurl(name)、Cat(animal)、true(favorite) 上点击最喜欢的。人 1 会看到她不喜欢但被其他人喜欢的 Bob(name)、Dog、(animal)、true(favorite) 的信息吗?这是我唯一关心的问题,因为我只想让特定的人看到他们最喜欢的东西。

你会如何处理这个问题?我已经阅读了一些推荐 Parse 的信息,这是我关心的问题,还有几个人推荐 Core Data,但是,据我了解,Core Data 不应该包含大量信息,因为我将在这个项目上处理大量信息。感谢您的意见!

【问题讨论】:

    标签: ios swift parse-platform


    【解决方案1】:

    第一个人会看到她不喜欢但被其他人喜欢的 Bob(name)、Dog、(animal)、true(favorite) 的信息吗?

    简而言之:是的。

    如果您想控制应用程序将为每个用户显示哪些数据,您必须至少使用一些用户逻辑(可以使用 Parse 开箱即用提供的 PFUser),也许还有一些 ACL。

    以下建模/逻辑只是一个建议,我不完全了解您要完成的工作。

    1 - 在你的 Parse 数据库中有一个类Name, Animal, Favorite, Pointer<PFUser>

    2 - 在应用中列出收藏夹时,创建一个过滤器,例如 query.whereKey("user", PFUser.current())

    3 - 当用户点击喜欢的东西时做

    // If using PFSubclassing
    let yourParseModel = MyModel()
    yourParseModel.favorite = true
    yourParseModel.user = PFUser.current()
    
    // If NOT using PFSubclassing
    let obj = PFObject(className: "YourClassName")
    obj["favorite"] = true
    obj["user"] = PFUser()
    

    【讨论】:

    • 感谢您提供的信息!!这真的很有帮助,我完全错过了用户部分。但是,我还有另一个问题,您如何看待存储在设备上的本地数据库
    • 我认为本地数据库在谈论缓存或应用程序特定情况时是必不可少的。我有一个使用 Parse 的本地数据存储的项目,由于性能问题,我不建议使用它。在具有约 1,5k 个寄存器的类中,使用低复杂度过滤器执行查询大约需要 0.8 秒。由于 Parse 非常易于使用,我建议您仅使用它来从/在云上下载/保存数据,但在本地使用 Core Data 或 Realm 之类的东西。顺便说一句,上次我检查这个性能问题是已知的,并且在 GitHub 上有一个问题,但如果他们已经解决了,我不知道。
    • 这里是关于本地数据存储github.com/parse-community/Parse-SDK-iOS-OSX/issues/32的性能问题
    猜你喜欢
    • 2011-02-12
    • 2015-04-29
    • 2012-06-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多