【发布时间】:2015-12-16 12:15:22
【问题描述】:
我在这里遇到了一个奇怪的问题。我有一个以 Parse.com 作为后端的项目(在建立与数据库的连接时使用 cloudcode 来验证一些事情)。一切正常。
但是问题来了。另一位开发人员向我报告说有问题,因为他每次尝试在 CloudCode 中调用 request.object.get('KEY')时都会得到“未定义”。该开发人员使用与我完全相同的代码库。
所以我决定看看它。虽然使用我的 Parse 帐户,每个应用程序都可以正常工作(甚至是新创建的应用程序),但使用其他开发人员的 Parse 帐户,我们创建的任何一个新应用程序似乎都无法使用完全相同的代码。而且它变得更加奇怪 - 创建一个全新的 Parse 帐户和一个新应用程序会产生相同的错误,而我的个人帐户和应用程序继续正常工作。
那么问题是什么?我们正在使用 CloudCode,这里是 beforeSave 方法的示例代码(在 javascript 中):
Parse.Cloud.beforeSave('Activity', function(request, response) {
var currentUser = request.user;
var objectUser = request.object.get('fromUser');
if(!currentUser || !objectUser) {
response.error('An Activity should have a valid fromUser.');
} else {
response.success();
}
});
并且每次request.object.get('KEY') 返回undefined,对于我在上传PFObject 之前在iOS 代码中定义的每个键。
请注意,使用我的个人帐户一切都很好......
我已经看到this 线程,但是删除 ACL 并没有解决问题。 request.object.get() 保持未定义,而 request.user 为除我之外的每个经过测试的 Parse 帐户定义。
编辑 1
我还在上传之前查看了活动对象,所有字段都已正确设置。
编辑 2
完全删除云代码后,对象已正确上传到 Parse,所有字段都是通过 iOS 客户端设置的方式。所以 Parse 的云代码似乎有问题,但是一旦一个对象通过云代码,它就会丢失它的所有字段。
【问题讨论】:
-
你能显示
request.object中的内容吗? -
request.object未定义,它根本不存在(对于其他开发人员,我的帐户仍然可以) - 但request.user存在。当对象没有通过cloudcode时,一切都在那里,所有字段都正确设置。
标签: javascript ios parse-platform parse-cloud-code