开发者社区> 问答> 正文

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

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

FiRest-Database是这样的:

https://i.stack.imgur.com/TC24vl.png

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

展开
收起
游客5akardh5cojhg 2019-12-09 13:30:47 492 0
1 条回答
写回答
取消 提交回答
  • 您需要知道两件事中的一件,才能在FiRestore中获得一个文档:

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

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

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

    除非您提供了一种定位文档的方法,否则FiRESTORE不能在任何时候只知道您想要的是哪个文档。

    2019-12-09 13:31:16
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
OpenStack Swift 海量小文件优化之路 立即下载
From Java/Android to Swift iOS 立即下载
Swift在Airbnb的应用实践 立即下载