Ios 如何使云Firestore身份验证Uid与用户ID匹配?
在中,编写安全规则的一种推荐方法是Ios 如何使云Firestore身份验证Uid与用户ID匹配?,ios,swift,firebase,google-cloud-firestore,firebase-security,Ios,Swift,Firebase,Google Cloud Firestore,Firebase Security,在中,编写安全规则的一种推荐方法是 service cloud.firestore { match /databases/{database}/documents { match /users/{userId} { allow read, update, delete: if request.auth.uid == userId; allow create: if request.auth.uid != null; } } } 但是,当我创建用户
service cloud.firestore {
match /databases/{database}/documents {
match /users/{userId} {
allow read, update, delete: if request.auth.uid == userId;
allow create: if request.auth.uid != null;
}
}
}
但是,当我创建用户时,userID与auth.uid不同(两者都是随机字符串,但完全是随机的)
如何在创建新用户时使它们自动匹配?您显示的规则建议文档ID应与通过Firebase身份验证获得的用户UID匹配。这是标准做法。如果您的代码没有同时编写此文档,那么该规则将不会像您预期的那样工作。因此,您可以使用它作为文档的ID。但我从未指定我希望文档的ID是什么(它是自动生成的)。Firebase上是否有方法始终使其与身份验证ID相同?是的,从Firebase auth获取用户的UID并将其用作文档的ID。您如何在代码中做到这一点?是在
Auth.Auth().createUser()
还是firestoreUsersCollection.addDocument()
中?在我的回答中,我链接到了一个获取从搜索中找到的UI的示例。该示例说明了如何获取UID,而不是在创建用户时如何设置UID(用户必须使用您提供的链接登录,但我希望在注册时创建用户时,在登录之前自动分配该UID)