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

时间:2019-12-08 20:51:57

标签: ios swift firebase google-cloud-firestore

在我的应用程序中,用户可以注册,并且这样做我还保存了firstnamelastnameuid

这是Firestore数据库的外观:

enter image description here

我想访问用户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()
            }

1 个答案:

答案 0 :(得分:4)

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

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

如果您不知道其中的任何一个,那么您所能做的就是获取集合中的所有文档,然后通过查看集合中的所有内容来找出想要的内容。

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

我建议使用Firebase Auth用户ID作为文档ID。这是非常普遍的。请勿使用addDocument用随机ID use setData用您知道的ID编写它。

Firestore不能随时知道您想要哪个文档,除非您提供一种查找文档的方法。