Eri*_*net 8 javascript ios parse-platform parse-cloud-code
我这边有一个奇怪的问题.我有一个使用Parse.com构建的项目作为后端(使用云代码来验证与数据库建立连接时的某些事情).一切都按照应有的方式运作.
但问题来了.另一位开发人员向我报告说有一些错误,因为他每次尝试使用request.object.get('KEY')CloudCode时都会"未定义" .这个开发人员使用与我完全相同的代码库.
所以我决定看看它.使用我的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();
}
});
Run Code Online (Sandbox Code Playgroud)
对于我之前在iOS代码中定义的每个键,每次request.object.get('KEY')返回undefined之前都会返回PFObject.请注意,使用我的个人帐户一切都很好......
我已经看过这个帖子,但是删除ACL并没有做到这一点.request.object.get()保持未定义,同时request.user为除了我的每个测试的Parse帐户定义.
编辑1
我还在上传活动对象之前查看了活动对象,并且所有字段都已正确设置.
编辑2
完全删除云代码后,对象被正确上传到Parse,所有字段都是通过iOS客户端设置的方式.因此,Parse的云代码似乎有问题,但是一旦对象通过云代码,它就会丢失其所有字段.
最后我能够解决这个问题.这绝对是Parse的Javascript SDK中的一个错误.我将global.json中的Javascript SDK版本更改回版本"1.4.2"而不是"latest",将其上传到cloudcode文件夹,一切都恢复正常.
你也可以测试其他版本,也许v1.5.0也在工作,但是一旦我发现v1.4.2工作正常,我没有尝试更新的版本.
编辑
所以,我发现,Parse必须在命令行工具中改变一些东西.如果您使用最新版本的命令行工具创建CloudCode文件夹,似乎global.json文件不再存在.但是,您可以手动创建它并将完整文件夹上载到Parse应用程序.
这就是我的CloudCode文件夹的样子,例如:CloudCode文件夹包含三个子文件夹
•云 - 包含云代码文件
•config - 包含global.json文件
•public - 包含index.html文件
global.json文件包含以下代码行:
{
"global": {
"parseVersion": "1.4.2"
},
"applications": {
"YOUR_PARSE_APPS_NAME": {
"applicationId": "YOUR_APP_ID",
"masterKey": "YOUR_APP_MASTER_KEY"
},
"_default": {
"link": "YOUR_PARSE_APPS_NAME"
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1141 次 |
| 最近记录: |