在 beforeSave 上初始化 User 中的指针

Initialize pointer in User on beforeSave

我正在尝试 initialize/create 用户注册时的指针。但是,每当我尝试这样做时,我都会遇到错误。

错误很明显:"Error: Cannot create a pointer to an unsaved ParseObject"

Parse.Cloud.beforeSave(Parse.User, function (request, response) {

console.log("saving user" + request.object + " " + request.object.isNew());

var cardList = request.object.get("cardList");

if (cardList == null) {

    console.log("user has no cardList, creating empty: " + request.object.id);

    //Result: Error: Cannot create a pointer to an unsaved ParseObject

    request.object.set("cardList", createCardList(request.object.id));
}

response.success();
});

是否可以在注册期间创建其他对象,然后将它们添加为指向用户的指针?

我能否将代码移至 "afterSave" 并确信在我的注册回调中,用户将拥有此数据集?

如果对象 isNew() 没有 ID 并且您不能将其设置为对另一个对象的引用。它是这样工作的,因为数据库中还不存在新对象。使用 afterSave 钩子和 existed() 如果你需要信息,如果对象在这次保存之前存在。