如何在 FaunaDB 谓词函数中获取记录的 "Ref"?
How to get record's "Ref" in FaunaDB predicate function?
我正在尝试准备“写”谓词函数。这个想法是允许用户只改变他自己的个人资料。我正在比较令牌中的“id”并记录“Ref”。
按照逻辑它应该像这样工作:
q.Lambda(
['old', 'new'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
q.Select(['ref'], q.Var('old'))
)
)
)
但它没有:“错误:执行该操作的权限不足。”
通过“谓词函数”文档:
write, history_write: the old data, the new data, and a reference to the document to be written.
我改了功能,还是报错。代码:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
q.Var('ref')
)
)
)
我还尝试将用户 ID 硬编码到此函数中,效果很好:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
"295870713291604487"
)
)
)
我做错了什么?
试试这个:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.CurrentIdentity(),
q.Var('ref')
)
)
)
q.Var('ref')
returns 一个 Ref
对象,而不是 id
。
我正在尝试准备“写”谓词函数。这个想法是允许用户只改变他自己的个人资料。我正在比较令牌中的“id”并记录“Ref”。 按照逻辑它应该像这样工作:
q.Lambda(
['old', 'new'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
q.Select(['ref'], q.Var('old'))
)
)
)
但它没有:“错误:执行该操作的权限不足。” 通过“谓词函数”文档:
write, history_write: the old data, the new data, and a reference to the document to be written.
我改了功能,还是报错。代码:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
q.Var('ref')
)
)
)
我还尝试将用户 ID 硬编码到此函数中,效果很好:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
"295870713291604487"
)
)
)
我做错了什么?
试试这个:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.CurrentIdentity(),
q.Var('ref')
)
)
)
q.Var('ref')
returns 一个 Ref
对象,而不是 id
。