控制对 Firestore 文档的访问

Control access to Firestore documents

我正在创建一个允许用户上传“报告”的模拟应用程序。这些报告带有“creatorId”标记,这是创建报告的用户的 uid。

我正在尝试使用 firebase 查询仅请求其 creatorId 与当前登录用户的 uid 匹配的文档,以防止请求其他用户的文档。

我似乎无法让它工作。我可以让它轻松地用于集合,但无法解决单个文档的问题。

const ref = projectFirestore.collection(collection).doc(id)

这是我的 useDocument 挂钩的一部分,我向其传递“报告”和相关 ID 就好了,但这允许我访问该文档,即使它的 creatorId 与当前记录的不匹配在用户中。

我的查询是:

["creatorId", "==", user.uid]

我也将其作为道具传递给挂钩,但我终生无法确定将其放在哪里 - 无论我做什么,查询似乎都被完全忽略了,因此该文档对任何人和全部。我想我要疯了。

永远不能相信客户端应用程序代码会做正确的事情,因为它 运行 在您无法控制的机器上。如果您想限制对文档的访问,您将需要了解 security rules. In particular, you will want to study how to limit access to documents using the currently signed in user's UID.