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

Ios Swift-从随机创建的文档ID(Firestore)获取字段,ios,swift,firebase,google-cloud-firestore,Ios,Swift,Firebase,Google Cloud Firestore,在我的应用程序中,用户可以注册,通过注册,我还可以保存firstname、lastname和uid 以下是Firestore数据库的外观: 我想访问用户lastname,但我不知道如何访问,因为文档ID是在注册过程中随机创建的 Auth.auth().createUser(withEmail: email, password: password) { (result, err) in //check for errors if let err

在我的应用程序中,用户可以注册,通过注册,我还可以保存
firstname
lastname
uid

以下是Firestore数据库的外观:

我想访问用户
lastname
,但我不知道如何访问,因为
文档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()
            }

要在Firestore中获取文档,您需要了解以下两点之一:

  • 文档的完整路径,包括集合的名称和文档的ID(以及任何嵌套的子集合和文档ID)
  • 关于该文档中数据的某些信息,例如,其中一个字段的值
  • 如果您不知道这两件事中的任何一件,那么您所能做的就是获取集合中的所有文档,并尝试通过查看集合中的所有内容来确定您想要什么

    底线是,如果你不知道哪个文档属于哪个用户,你就有点卡住了。您应该将用户ID存储在文档中,或者作为文档本身的ID,以便以后可以使用它查找该文档

    我建议使用Firebase Auth用户ID作为文档的ID。这是非常普遍的。不要使用addDocument来编写随机ID,也不要使用您知道的ID


    Firestore在任何时候都不能只知道您想要哪个文档,除非您提供了一种方法让Firestore找到该文档。

    要在Firestore中获取文档,您需要知道以下两件事之一:

  • 文档的完整路径,包括集合的名称和文档的ID(以及任何嵌套的子集合和文档ID)
  • 关于该文档中数据的某些信息,例如,其中一个字段的值
  • 如果您不知道这两件事中的任何一件,那么您所能做的就是获取集合中的所有文档,并尝试通过查看集合中的所有内容来确定您想要什么

    底线是,如果你不知道哪个文档属于哪个用户,你就有点卡住了。您应该将用户ID存储在文档中,或者作为文档本身的ID,以便以后可以使用它查找该文档

    我建议使用Firebase Auth用户ID作为文档的ID。这是非常普遍的。不要使用addDocument来编写随机ID,也不要使用您知道的ID


    Firestore在任何时候都不能只知道您想要哪个文档,除非您提供了一种方法让它定位文档。

    我使用
    setData
    和Firebase Auth用户ID使其正常工作,就像您所说的那样。谢谢:)我通过使用
    setData
    和Firebase Auth用户ID(正如您所说)使其正常工作。谢谢:)