Cloud 코드상에서의 save 권한

parse

(Jeff Kang) #1

Cloud 코드상에서 Parse.Object.saveAll(Objects, { useMasterKey: true })
나 save 관련 함수 사용이 제대로 동작이 되지 않습니다. (다음으로 넘어가지 않음)

MasterKey 관련문제 같은데 { useMasterKey: true } 를 해줘도 아무 변화가 없네요.

어떻게 해결할 수 있을까요?


(이종은(Jong Lee)) #2

useMasterKey 는 정상적으로 넣어줬는데 다른 곳에서 에러나는거 아닐까요?
제 경우 Parse는 대부분 Promise이다 뒤에 catch를 붙이지 않아서 에러메시지를 확인 못하고 있는 경우가 많더라고요.

습관적으로 처럼 붙이고 있어요.

Parse.Object.saveAll(Objects, { useMasterKey: true }).catch(console.error)

만약 async awit으로 쓸거라면 try catch로 에러 핸들링.


(Jeff Kang) #3

const initGifts = [
    {
      category: 'A',
      title: 'title',
      status: true,
    }];

  const Gift = Parse.Object.extend('Gift');
  let giftObjects = [];

  initGifts.map(gift => {
    let object = new Gift();

    object.set(gift);
  });

  Parse.Object.saveAll(giftObjects, { useMasterKey: true })
  .then(result => {
    res.success();
  })
  .catch(error => {
    console.error;
    res.error(error);
  });

이상하게도 아예 saveAll부터 응답이 없네요.


(Jeff Kang) #4

해결했습니다

설정에서 serverURL 경로가 문제였네요. 뒤에 /parse 부분이 붙지 않아서 발생한 일이였습니다.

엉뚱한데서 해맸네요 ㅜㅜ


(InGrowth) #5

parse-sever의 클라우드 펑션은 parse-server와 같은듯 다르게 핸들링되는 오묘한거라 그럴수 있습니다.
장점은 parse-server가 멀티 인스턴스 일 경우 serverURL을 로드밸런서 주소로 주면, 클라우드 펑션의 성능이 올라갑니다:


(Jeff Kang) #6

오 좋은 팁 감사합니다. 기억해놔야겠네요.