ios - Firebase Swift:如何使用“用户”集合下的 UID 创建新集合?
问题描述
我正在使用 Firebase Auth & Cloud Database 创建一个新的 IOS 应用程序。添加新用户时,会创建一个“个人资料”集合,其中包含他们的初始注册输入。我需要弄清楚如何在使用 UID 作为其文档 ID 的“用户”集合下创建一个新集合。
到目前为止,这是我为这一位编写的代码,但我不断收到此消息"Value of type 'CollectionReference' has no member 'child'"
。我按照 Firebase 的说明进行操作,但一直出错。
我错过了什么?
// Create the user
Auth.auth().createUser(withEmail: email, password: password) { (result, err) in
// Check for errors
if err != nil {
// There was an error
self.showError("Error creating the user")
}
else {
// User was created successfully, now store the first name and last name
let db = Firestore.firestore()
let uid = result!.user.uid
//creates profile doc under uid with all the info
db.collection("users").child(uid).addDocument("profile").setData([ "firstname":firstName, "lastname":lastName, "uid":uid, "companyname":companyName, "companyalias":companyAlias, "trucknumber":truckNumber, "trucktype":truckType]) { (error) in
//db.collection("users").addDocument(data: ["firstname":firstName, "lastname":lastName, "uid":result!.user.uid ]) { (error) in
if error != nil {
//Show error message
self.showError("Error saving user data")
}
}
//Transition to home
self.transitionToHome()
}
}
}
}
我担心在创建新用户时我可能应该在开始时创建其他集合。我需要每个用户都有一个保存在 UID 下的“个人资料”、“朋友列表”和“我的工作”集合。
我是否应该在开始时担心是否要创建所有必需的集合?
解决方案
正如弗兰克·范·普菲伦所说。您可以简单地将用户数据用作您的配置文件数据,然后根据需要添加子集合。创建用户时无需创建子集合。在我的示例中,仅当用户使用应用程序的其他功能时才会创建子集合。我会添加用户个人资料所需的所有不同字段,并让用户稍后修改它们,但这只是我的偏好。
推荐阅读
- javascript - 如何以 100% 全宽嵌入 YouTube iframe 视频
- excel - 当我尝试打开宏时 Excel 关闭
- php - 如何使用 php 进行多选选项?
- scala - 播放框架返回 404,带有 play.http.context 和斜杠
- python - 用线连接抖动的数据点 - seaborn python
- reactjs - 如何使用屏蔽输入添加 antd datepicker
- java - `Thread.checkAccess()` 是 `Thread.suspend()` 的合适替代品吗?
- c# - 尝试添加浏览图片时弹出错误消息但代码正确
- wordpress - 同一个 Docker 容器上的多个域
- c# - 在 C# 上需要某种无穷无尽的泛型类型方法