Я пытаюсь подготовить функцию предиката «запись». Идея состоит в том, чтобы позволить пользователю изменять только свой собственный профиль. Я сравниваю «id» из Token и записываю «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.Equals(
q.Select(["id"], q.CurrentIdentity()),
q.Var('ref')
)
)
)
Я также попытался жестко запрограммировать идентификатор пользователя для этой функции, и она хорошо работает:
q.Query(
q.Lambda(
['old', 'new', 'ref'],
q.Equals(
q.Select(["id"], q.CurrentIdentity()),
"295870713291604487"
)
)
)
Что я делаю не так?