簡體   English   中英

遷移到Heroku后,雲代碼中的解析查詢無法正常工作

[英]Parse query in cloud code not working after migrating to Heroku

我已根據Parse博客上的遷移指南將我的Parse應用程序遷移到Heroku。 除了在我的雲代碼中運行查詢外,事情似乎工作正常。 這是我的代碼:

Parse.Cloud.afterSave("Item", function(request) {
    //Parse.Cloud.useMasterKey(); //Uncomenting this line yields the same error

    var query = new Parse.Query(Parse.User);
    var prevAssigneeId = request.object.get("prevAssignee").id;
    var assigneeId = request.object.get("assignee").id;

    query.get(prevAssigneeId, { // <-- Results in an error
        success: function(prevAssignee) {
            console.log("Fetch prevAssignee: Success");
            query.get(assigneeId, {
                success: function(assignee) {
                    console.log("Fetch assignee: Success");

                    // Do something with the fetched users!
                },
                error: function(object, error) {
                   console.log("Query for assignee: ");
                   console.log(error);
                }
            });
        },
        error: function(object, error) {
            console.log("Query for prevAssignee: ");
            console.log(error); //<-- Error is logged here
        }
    });
});

錯誤

ParseError { code: undefined, message: 'unauthorized' }

這個雲代碼用於在Parse上托管時運行正常。 但是在遷移后我遇到了上述錯誤。 其他不使用ParseQuery的雲代碼仍然可以正常工作。

關於問題可能是什么的任何想法?

UPDATE

仍然無法找到解決方案,所以我嘗試將代碼更改為以下內容:

Parse.Cloud.afterSave("Item", function(request) {

    console.log("Executing afterSave");

    function findUser(user_id) {
        var query = new Parse.Query(Parse.User);
        //Parse.Cloud.userMasterKey();
        return query.get(user_id);
    }

    var prevAssigneePromise = findUser(request.object.get("prevAssignee").id);
    var assigneePromise = findUser(request.object.get("assignee").id);

    var promises = [prevAssigneePromise, assigneePromise];

    Parse.Promise.when(promises).then(function(prevAssignee, assignee) {

        //Do something here!
        console.log("This line was executed!");

    },
    function(error) {
        console.log(error);
    });
});

現在我注意到以下行為:

  • 按原樣運行,它會產生相同的錯誤: [ ParseError { code: undefined, message: 'unauthorized' }, ParseError { code: undefined, message: 'unauthorized' } ]
  • 如果我取消注釋Parse.Cloud.userMasterKey(); ,沒有錯誤,但不會在成功塊中執行任何操作,即記錄“此行已執行!”。 我可以確認日志記錄本身是有效的,因為其他console.log(...)語句可以正常工作。

僅供參考: Item是一個Parse類,其中prevAssignee assigneeprevAssignee為指向_User的指針。

任何幫助深表感謝。

query.get(prevAssigneeId, {
    useMasterKey: true
    success: function(prevAssignee) {
        console.log("Fetch prevAssignee: Success");

    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM