问题描述
我正在尝试准备“写入”谓词函数。这个想法是允许用户只更改他自己的个人资料。我正在比较 Token 中的“id”并记录“Ref”。 按照逻辑,它应该像这样工作:
q.Lambda(
['old','new'],q.Equals(
q.Select(["id"],q.CurrentIdentity()),q.Select(['ref'],q.Var('old'))
)
)
)
但它没有:“错误:执行操作的权限不足。” 通过“谓词函数”文档:
write、history_write:旧数据、新数据和对要写入的文档的引用。
我更改了功能,但错误仍然出现。代码:
q.Query(
q.Lambda(
['old','new','ref'],q.Var('ref')
)
)
)
我还尝试将用户 ID 硬编码到此函数中,并且效果很好:
q.Query(
q.Lambda(
['old',"295870713291604487"
)
)
)
我做错了什么?
解决方法
试试这个:
q.Query(
q.Lambda(
['old','new','ref'],q.Equals(
q.CurrentIdentity(),q.Var('ref')
)
)
)
q.Var('ref')
返回一个 Ref
对象,而不是一个 id
。