gpt4 book ai didi

firebase - 使用 firestore.rules 检查 auth.id 是否在资源数据映射中?

转载 作者:行者123 更新时间:2023-12-02 19:56:20 27 4
gpt4 key购买 nike

我很难找到一种方法来创建一个规则,如果用户是文档的参与者,则允许读取。

我有一个文档集合,其中每个文档中的“参与者”被定义为对象数组。当用户的 auth.uid 等于参与者对象之一的 userId 属性时,我想允许读取。

我的文档在 firestore 中如下所示:
enter image description here

现在在我的 firestore.rules 中我想写一些类似的内容:

if resource.data.participants.find(p => p.userId == request.auth.uid)

...但这不可能

有没有办法将其放入一个函数中,以执行该或其他方式来解决它?

br,西蒙

最佳答案

您要查找的内容相当于查询中的array-contains,它位于安全规则中的in。为了允许这种检查,您需要将用户的 UID 存储在数组中:

participantUIDs: ["tJ6Yn...solV2", "hijlD...uXFA2"]

然后您可以通过以下方式在安全规则中检查它们:

if request.auth.uid in resource.data.participantUIDs

关于firebase - 使用 firestore.rules 检查 auth.id 是否在资源数据映射中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56936725/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com