在 iOS 客户端代码和 Parse 云代码之间共享常量
Posted
技术标签:
【中文标题】在 iOS 客户端代码和 Parse 云代码之间共享常量【英文标题】:Share constants between iOS client code and Parse cloud code 【发布时间】:2016-01-03 15:20:41 【问题描述】:我有一个使用 Parse 作为后端的 iOS 应用。在那里,一些云代码被执行。
两者必须共享相同的常量。
我可以通过obj-c #import
在客户端共享这些常量,也可以通过module.exports
/require
在云代码端共享。
但是如何在客户端代码和云代码之间共享它呢?两次定义相同的常量很容易出错。
【问题讨论】:
【参考方案1】:Parse 提供了一个可以像类一样查询的配置对象(在 ios 中返回 NSDictionary
)。此外,它可以通过 parse.com 上的 Web UI 进行配置。 See docs here.
启动时,您的应用可以检索配置并将其缓存在本地。您可以选择半永久地缓存它(例如,使用NSUserDefaults
),然后无限期地使用本地副本。我通常选择一些固定的有效期(比如每周,所以我的常数不是很恒定)。启动逻辑是,如果现在和我上次获取配置之间的间隔超过一周,则再次获取并替换。
【讨论】:
感谢您的回答。看起来很有趣。我会调查的。 如果我理解正确的文档,客户端应用程序和云代码可以读取类 Config。它返回一个字典,例如与常数。但是,客户端和云代码都必须使用相同的密钥,这必须在客户端和云中进行硬编码——在两个地方,我想避免。我说的对吗? 你是对的。没有办法避免在客户端中包含密钥。密钥应该被认为是不安全的。必须使用 ACL 和类级别的控件来保护数据。 对。主密钥是秘密的,不应在应用程序中。应用程序将仅使用应用程序密钥和客户端密钥之一分发,具体取决于平台。 是的。 global.json 是开发环境配置(用于解析控制台应用程序的配置)并保持私有。 Config 仅包含您在解析网络应用程序上定义的变量,并且(我在原始答案中忘记了这一事实)将在初始获取后为您在本地缓存。它与 global.json 100% 分开。以上是关于在 iOS 客户端代码和 Parse 云代码之间共享常量的主要内容,如果未能解决你的问题,请参考以下文章
使用 Parse.Could.AfterSave 将关系添加到 ParseObject