2016-02-12 11 views
5

पर माइग्रेट करने के बाद काम नहीं कर रही है, मैंने पार्स ब्लॉग पर माइग्रेशन गाइड के अनुसार अपने पार्स ऐप को हरोकू में माइग्रेट कर दिया है। मेरे क्लाउड कोड में एक क्वेरी चलाने के अलावा चीजें ठीक काम करने लगती हैं।क्लाउड कोड में पार्स क्वेरी हेरोोक

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' }

यह बादल जब पार्स पर होस्ट ठीक से चलाने के लिए इस्तेमाल किया कोड: यहाँ मेरी कोड है। लेकिन माइग्रेट करने के बाद मुझे उपरोक्त त्रुटि मिल रही है। अन्य क्लाउड कोड जो ParseQuery का उपयोग नहीं करता है अभी भी ठीक काम करता है।

समस्या के बारे में कोई विचार क्या हो सकता है?

अद्यतन

अभी भी इस के लिए एक ठीक ढूँढने में सक्षम नहीं तो मैं निम्नलिखित करने के लिए कोड को बदलने की कोशिश की:

  • :

    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' } ]

  • यदि मैं unco mment Parse.Cloud.userMasterKey();, कोई त्रुटि नहीं है, लेकिन सफलता ब्लॉक में कुछ भी निष्पादित नहीं करेगा यानी लॉग इन करें "यह पंक्ति निष्पादित की गई थी!"। मैं पुष्टि कर सकता हूं कि लॉगिंग स्वयं काम कर रही है क्योंकि अन्य console.log(...) कथन कार्य करते हैं।

बस FYI: Item कॉलम assignee और prevAssignee कॉलम जा रहा है कि _User रों को संकेत दिए गए हैं के साथ एक पार्स वर्ग है।

किसी भी मदद की बहुत सराहना की जाती है। सच है, सफलता:

+0

आप query.get (prevAssigneeId, { useMasterKey उपयोग करने की आवश्यकता समारोह (prevAssignee) { – jiawen

+0

यह @jiawen काम नहीं किया, मैं एक अलग दृष्टिकोण है जो भी नहीं था 'करने की कोशिश की टी काम (मेरा अद्यतन कोड देखें)। कोई विचार? – janakagamini

उत्तर

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

    } 
} 
+0

काम नहीं किया, एक ही त्रुटि :( – janakagamini

+0

मुझे मास्टर कुंजी का उपयोग करने वाले सभी प्रश्नों में भी त्रुटि हो रही है, लेकिन त्रुटि ऑब्जेक्ट अपरिभाषित है। –

संबंधित मुद्दे