Swift - 从随机创建的文档 ID (Firestore) 中获取字段

Chr*_*ris 1 ios firebase swift google-cloud-firestore

在我的应用程序中,用户可以注册,这样我也可以保存firstname,lastnameuid.

这是 Firestore-Database 的样子:

在此处输入图片说明

我想访问用户,lastname但我不知道如何访问,因为Document-ID在注册过程中会随机创建。

Auth.auth().createUser(withEmail: email, password: password) { (result, err) in

            //check for errors
            if let err = err {
                self.view.endEditing(true)
                self.showError(err.localizedDescription)

            }else {

                //user was created successfully; store first and last name
                let db = Firestore.firestore()

                db.collection("users").addDocument(data: ["firstname":firstName, "lastname": lastName, "uid": result!.user.uid]) { (error) in

                    if error != nil {
                        self.showError("Error saving user data")
                    }
                }

                //transition to home
                self.transitionToHome()
            }
Run Code Online (Sandbox Code Playgroud)

Dou*_*son 5

您需要了解以下两件事之一才能在 Firestore 中获取文档:

  1. 文档的完整路径,包括集合名称和文档 ID(以及任何嵌套的子集合和文档 ID)
  2. 有关该文档中数据的某些信息,例如,其中一个字段的值。

如果您不知道这两件事中的任何一个,那么您所能做的就是获取集合中的所有文档,并尝试通过查看集合中的所有内容来找出您想要的内容。

最重要的是,如果您不知道哪个文档属于哪个用户,您就会陷入困境。您应该将用户的 ID 存储在文档中,或者作为文档本身的 ID,以便您以后可以使用它来查找该文档。

我建议使用 Firebase Auth 用户 ID 作为文档的 ID。这是非常常见的。不要用 addDocument 用随机 ID 写它,你知道的 ID用 setData

Firestore 不能随时知道您想要哪个文档,除非您提供一种方法来定位该文档。