在我的应用程序上,我试图做到这一点,以便用户必须具有唯一的用户名。
我当前的方法是拥有一个Social
集合和一个名为Usernames
的文档。该文档将用户userID
存储为字段的键,然后将其username
存储为值。
我正在努力为此编写正确的安全规则。我想要这样:
目前,我无法上班的唯一要点是检查是否已使用用户名。
我想到的另一种解决方案是反转字段(用户名:userID)。但我也找不到一种方法来编写此方法的安全规则。
当前规则
// Usernames
match /Social/Usernames {
allow get: if request.auth.uid != null;
allow update: if isUserNameAvailable();
}
// Functions
function isUserNameAvailable() {
// This line works
return (request.writeFields.hasOnly([request.auth.uid]))
// This one doesn't
&& !(resource.data.values().hasAny([request.writeFields[request.auth.uid]]));
}
Firestore数据结构
非常感谢您的帮助,非常感谢!