在 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.com 云代码调用?

云代码 - Parse.Object 初始化程序不起作用

使用 Parse.Could.AfterSave 将关系添加到 ParseObject

iOS Swift Parse-在强制退出应用程序后调用解析云功能

解析云代码函数响应成功不是函数

如何将 Parse Cloud Code 中的值返回到我的 iOS 应用程序?