【发布时间】:2019-03-30 07:02:15
【问题描述】:
当用户第一次登录时,我还需要调用一个函数,该函数在我的 firestore 用户集合中创建一个文档来存储他们的个人资料数据。使用 Web SDK。
(我之前使用带有 firebase 功能的新用户触发事件,但等待冷功能启动太慢了)。
安全规则要求
需要确保用户只能在文档 id 与其用户 id 相同的情况下创建文档(以防止用户创建其他文档)。需要确保此文档不存在。
尝试 - 在模拟器中工作,而不是 IRL
这些测试通过了模拟器,但没有通过 IRL。
// Allow users to create a doc if the doc ID == their user id
allow create: if path("/databases/" + database + "/documents/users/" + request.auth.uid) == request.path;
或
allow create: if /databases/$(database)/documents/users/$(request.auth.uid) == request.resource['__name__']
也试过这个(再次,在模拟器中工作,但不是 IRL)
match /users/{userId} {
// Allow users to read their own profile
allow create: if request.auth.uid == userId;
}
【问题讨论】:
-
您找到解决方案了吗?在我的 Firestore 项目中,我一直在苦苦挣扎
标签: firebase google-cloud-firestore firebase-security