Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/105.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何使云Firestore身份验证Uid与用户ID匹配?_Ios_Swift_Firebase_Google Cloud Firestore_Firebase Security - Fatal编程技术网

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)