我需要帮助迁移我的解析服务器,并由解析支持页面指示。
我已完成数据库迁移到mLab数据库并在heroku中运行解析服务器示例。
我的项目完全可以使用默认的解析服务器示例main.js文件检索我的当前数据,但是我仍然希望从客户端运行ParseServer作业,就像在这个iOS示例中一样,所以我想使用自己的main。 js文件。
[PFCloud callFunction:@"publishCard" withParameters:@{
@"cardID" : card.cardPF.objectId,
} error:&error];
当我尝试使用以下文件作为main.js运行我的项目时(我已将其重命名为newmainjs仅用于可见性),它不允许我从我的iOS客户端再次使用parse登录 - 它似乎是触发错误,我不知道如何调试它,因为它没有在迁移教程中介绍。
https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js
我在后端/节点非常业余,所以我非常感谢一些支持,因为我之前依赖Parse做了很多事情。
答案 0 :(得分:0)
看看:https://parse.com/migration
第3节"云代码"。
您需要更改以下内容的使用:
Parse.Cloud.useMasterKey()
你使用:
这里: https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js#L162
在这里:https://github.com/KetchupMoose/cardgameserver/blob/master/cloud/newmain.js#L633
而不是使用useMasterKey(),你需要传递“useMasterKey:true'查询和保存。
以下是您的代码中的一些示例:
userQuery.find({
useMasterKey: true, // <-- note the addition here
success: function(results) {
console.log(results.count);
....
和
}).then(function(saveObjects)
{
Parse.Object.saveAll(updatedUserObjects, {
useMasterKey: true, // <--- here
success: function(list) {
//assumes all are saved
response.success("user EloRatings Saved Successfully");
},
.....
和
Parse.Cloud.define("giveSellerGold", function(request, response) {
Parse.Cloud.useMasterKey();
var user = new Parse.User();
var query = new Parse.Query(Parse.User);
query.equalTo("objectId", request.params.sellerID);
query.first({
useMasterKey: true, // <--- here
success: function(object) {
object.increment("gold", request.params.sellerGold);
object.save(null, { useMasterKey: true }); // <-- note how save is done.
response.success("Successfully saved gold");
},
error: function(error) {
response.error("update failed");
}
});
});
所以只需确保所有查询(需要它)都通过了“useMasterKey”&#39;在选项中,应该这样做!祝你好运。