微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 FaunaDB 谓词函数中获取记录的“Ref”?

如何解决如何在 FaunaDB 谓词函数中获取记录的“Ref”?

我正在尝试准备“写入”谓词函数。这个想法是允许用户只更改他自己的个人资料。我正在比较 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')
    )
  )
)

与此类似:https://github.com/Vadorequest/rwa-faunadb-reaflow-nextjs-magic/blob/main/fauna/roles/Editor.ts#L73-L81

q.Var('ref') 返回一个 Ref 对象,而不是一个 id

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。