我正在使用Firebase身份验证和云数据库创建一个新的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下保存一个“个人资料”,“朋友列表”和“我的工作”集合。
我是否应该担心一开始是否创建所有必需的集合?
答案 0 :(得分:0)
如Frank van Puffelen所述。您可以简单地将用户数据用作您的个人资料数据,然后根据需要添加子集合。创建用户时无需创建子集合。在我的示例中,仅当用户利用应用程序的其他功能时才创建子集合。我将添加用户个人资料需要的所有不同字段,并让用户稍后对其进行修改,但这只是我的偏爱。