[.Net]/[Unity]新注册用户的_User数据出错

目前的SDK当新注册用户成功后,在Unity客户端该用户会自动登录,然而用var objId = AVUser.CurrentUser.Get<AVObject>("Obj1").ObjectId;时会出错,提示:

KeyNotFoundException: The given key was not present in the dictionary.
System.Collections.Generic.Dictionary`2[System.String,System.Object].get_Item (System.String key) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.Collections.Generic/Dictionary.cs:150)
LeanCloud.AVObject.get_Item (System.String key)
LeanCloud.AVObject.Get[AVObject] (System.String key)
...

Obj1是指向另一个表Obj1的pointer。这个关系的设置是在Hook函数中设置的,当用户注册时(创建User数据时)新增该pointer数据并save():

@engine.after_save('_User')
def after_save_User(user):
    略

这时如果退出该用户登录,然后重新登录,再调用以上代码,才会成功。

我猜测可能是因为SDK在用户注册新帐号并自动登录成功后,并没有fetch _User表的数据;或者是当fetch时,服务器端hook的函数还没执行完,导致fetch的数据不包含该pointer的最新数据(另外请问这部分fetch的数据是否在本地缓存了?因为发生这个情况后停止运行然后重新运行,不做登出、登录、注册等操作,这时登录的仍是上次运行时注册的新帐号,然后调用var objId = AVUser.CurrentUser.Get<AVObject>("Obj1").ObjectId;时仍然有这个问题)。

或者说,如何能在用户注册新帐号后,保证在执行完毕一系列耗时操作之后,才让客户端得到最新的数据并自动登录?
请问应该如何解决?谢谢!

我们需要调查一下 AVUser.CurrentUser 为什么没存自定义的数据。
晚些时候会更新回答。

感谢回复,你的意思是为什么没在本地存自定义的数据吗?
这个问题我现在是这样规避的:将上述自定义数据改为before_save中进行新建,这样当unity客户端注册成功并默认自动登录后,是用于该新建的自定义数据的。这样的方案还会节约一次save,比旧方案好。然而旧方案所述问题也许是隐藏的bug。

另外顺便请问一下,在云函数中新建objectA、新建objectB,objectA.set('key1', bojectB)objectA.save(),做了这几个操作后,虽然没有显式调用objectB.save(),但objectA和objectB都会被save了。这中间是否节约了一次save?还是是仅仅代码看起来干净一点,sdk还是做了2次save()?