我使用 Parse.com 作为基于 Trigger.io 的 Android 应用程序的后端。我的问题是非常基本的,我相信这只是我没有掌握的对 javascript 的一些基本理解——我仍在学习很多关于该语言的知识。
当我在 Parse 中查询对象数组并记录响应时,我得到了我需要的一切:每个对象的属性、唯一对象 ID、createdAt、updatedAt 等。以下是 Parse 中单个对象的示例:
来自 Parse 的对象:
[信息] 10-03 10:34:21.992 18060 18072 我锻造:[锻造] [信息] 10-03 10:34:21.992 18060 18072 我伪造:[{ 属性: [信息] 10-03 10:34:21.992 18060 18072 我伪造:{ first_name: 'John', [信息] 10-03 10:34:21.992 18060 18072 我伪造:姓氏:“史密斯”, [信息] 10-03 10:34:21.992 18060 18072 I Forge : 电子邮件: 'john.smith@aol.com', [信息] 10-03 10:34:21.992 18060 18072 我伪造:电话:'5551112234', [信息] 10-03 10:34:21.992 18060 18072 我伪造:地址:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:城市:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:状态:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:zip:'', [信息] 10-03 10:34:21.992 18060 18072 我锻造:种族:'7', [信息] 10-03 10:34:21.992 18060 18072 I Forge : theDate: '10/02/2012', [信息] 10-03 10:34:21.992 18060 18072 我伪造:formName:'DriverWaiver', [信息] 10-03 10:34:21.992 18060 18072 I Forge : 进口: true }, [信息] 10-03 10:34:21.992 18060 18072 我伪造:_操作:{}, [信息] 10-03 10:34:21.992 18060 18072 我伪造:_dirty:{}, [信息] 10-03 10:34:21.992 18060 18072 我伪造:_hashedJSON:{}, [信息] 10-03 10:34:21.992 18060 18072 我伪造:_escapedAttributes:{}, [信息] 10-03 10:34:21.992 18060 18072 我伪造:cid:'c38', [信息] 10-03 10:34:21.992 18060 18072 我伪造 : id: 'beLlUqrUBl', [信息] 10-03 10:34:21.992 18060 18072 I Forge : createdAt: '2012-10-02T17:51:38.267Z', [信息] 10-03 10:34:21.992 18060 18072 我伪造:更新在:'2012-10-02T17:51:38.267Z', [信息] 10-03 10:34:21.992 18060 18072 我伪造:_setting:假, [信息] 10-03 10:34:21.992 18060 18072 我伪造:_previousAttributes: [信息] 10-03 10:34:21.992 18060 18072 我伪造:{ first_name: 'John', [信息] 10-03 10:34:21.992 18060 18072 我伪造:姓氏:“史密斯”, [信息] 10-03 10:34:21.992 18060 18072 I Forge : 电子邮件: 'john.smith@aol.com', [信息] 10-03 10:34:21.992 18060 18072 我伪造:电话:'5551112234', [信息] 10-03 10:34:21.992 18060 18072 我伪造:地址:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:城市:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:状态:'', [信息] 10-03 10:34:21.992 18060 18072 我伪造:zip:'', [信息] 10-03 10:34:21.992 18060 18072 我锻造:种族:'7', [信息] 10-03 10:34:21.992 18060 18072 I Forge : theDate: '10/02/2012', [信息] 10-03 10:34:21.992 18060 18072 我伪造:formName:'DriverWaiver', [信息] 10-03 10:34:21.992 18060 18072 I Forge : 进口: true } },
然而,在保存结果后,没有变量操作,使用 Trigger.io 的 forge.prefs.set(),我只能读取属性。这是使用 forge.prefs.get() 读取后的相同对象:
使用 forge.prefs.set() 保存并使用 forge.prefs.get() 检索后:
[信息] 10-03 11:05:44.594 19055 19068 我锻造:[锻造] [信息] 10-03 11:05:44.594 19055 19068 I Forge : [ { first_name: 'John', [信息] 10-03 11:05:44.594 19055 19068 我伪造:姓氏:'史密斯', [信息] 10-03 11:05:44.594 19055 19068 I Forge : 电子邮件: 'john.smith@aol.com', [信息] 10-03 11:05:44.594 19055 19068 我伪造:电话:'5551112233', [信息] 10-03 11:05:44.594 19055 19068 我伪造:地址:'', [信息] 10-03 11:05:44.594 19055 19068 我伪造:城市:'', [信息] 10-03 11:05:44.594 19055 19068 我伪造:状态:'', [信息] 10-03 11:05:44.594 19055 19068 I Forge : zip: '', [信息] 10-03 11:05:44.594 19055 19068 我锻造:种族:'7', [信息] 10-03 11:05:44.594 19055 19068 I Forge : theDate: '10/02/2012', [信息] 10-03 11:05:44.594 19055 19068 我伪造:formName:'DriverWaiver', [信息] 10-03 11:05:44.594 19055 19068 I Forge : 进口: true },
产生上述结果的简化代码
var FormData = Parse.Object.extend(formName); var query = new Parse.Query(FormData); var currentYear = new Date().getFullYear(); query.endsWith("theDate", currentYear.toString()); 查询.limit(1000); query.descending('imported'); // 从解析中获取 查询.find({ 成功:函数(结果){ // 从 Parse 得到 if (formName == "DriverWaiver") forgeLog(results); // 保存到本地 forge.prefs.set(formName, results, function(){ // 保存到本地 forgeLog("保存到本地"); // 从本地获取 forge.prefs.get(formName, function(results){ // 从本地获取 forgeLog("从本地获取"); if (formName == "DriverWaiver") forgeLog(results); }, 功能(){ // 从本地获取错误 forgeLog("从本地获取错误"); }); }, 功能 (){ // 错误保存到本地 forgeLog("保存到本地出错"); }); }, 错误:函数(错误){ // 从解析中获取错误 forgeLog("从 Parse 获取数据时出错"); } });
所以我想我的问题是:我怎样才能保存整个对象?我真的需要为我的应用程序正常运行保存的唯一 ID。
我将完整的日志输出发送给 Trigger 支持,他们认为这是 Parse API 问题并将我推迟到他们那里。我不相信这是 Parse 问题,但我希望这里的社区可以提供一些见解,而不是四处寻找支持渠道。提前致谢!