起因是发现项目的ACL列出现了'_owner',两个项目,ACL设置一致,但是结果不同。
找了很久后发现了问题,大致如下:
1,创建Class,选择 限制写入。看到如下 ACL


2,保存数据之后,数据列结果为:

结果正确,创建者的ACL被正确处理。
3,修改 ACL列,将默认值 {"*":{"write":false,"read":true},"_owner":{"write":true,"read":true}} 复制、再粘贴进去,点击保存。按照预想,我没有修改ACL列的默认值。
保存数据之后,数据列结果为:

从表现上来看,当ACL列的默认值被重新修改后,其_owner会被处理为 String,并不会被处理为 创建者,导致后续创建的数据的ACL列上都会变成 字符串 _owner
烦请你们确认一下该问题。

ACL 默认值并不支持 owner 属性的,不知道您是从哪里看到的文档?

ACL 默认值跟 class 创建设定的 ACL 是两个东西,前者可以修改,后者是设定后就不能修改了。

如果需要自定义 ACL,一个是在客户端做,一个是使用云引擎 beforeSave

所以意思是 创建Class时,ACL列中的_owner,与单独修改ACL时列中的_owner不是一个东西?
并且创建好Class后,其ACL列的默认值中就包含了_owner。如果不能修改,那为何会出现在默认值中?

哦,那是前端误导了,他并不是默认值。

ACL 的默认值也不支持 owner 属性,有这种需求的,请走我刚才提的两个办法。

好的,明白。

不过我想了下,我们其实可以支持的,只不过跟前端没有沟通好,下次发布会支持下 _owner 的默认值。

多谢及时解答。🙏

好像有失效了。