当用户通过我的表单注册时,会创建一个与该用户关联的文档。我的主要目标是创建一个全局函数,可以识别登录的用户并获取他们的文档 ID。我有一个功能设置,用于将文档添加到完美设置的用户文档的子集合中,唯一的缺点是当我使用多个帐户进行测试时,我必须手动切换集合路径。这就是我的意思。
@IBAction public func createEventButton(_ sender: UIButton) {
let error = validateFields()
if error != nil {
showError(error!)
} else {
db.collection("school_users/\(stThomas)/events").addDocument(data: ["event_name": nameTextField.text, "event_date": dateTextField.text, "event_cost": costTextField.text, "for_grades": gradesTextField.text]) { (error) in
if error != nil {
self.showError("There was an error trying to add user data to the system.")
} else {
self.dismiss(animated: true, completion: nil)
}
}
}
正如您在此处看到的,我使用字符串插值和用于存储文档 ID 的“stThomas”常量。我基本上想创建一个函数来识别登录用户的文档 ID,这样我就可以使用我的常量而不是字符串插值,并且每次都必须手动切换用户收集路径,这在生产过程中最终是不可能的。
更不用说,我确实有一个获取文档 ID 的功能,比如点击了一个事件,但作为 Swift 的初学者,我似乎无法将这些点联系起来。我还将展示此功能以进行说明。
func getDocID() {
db.collection("school_users/\(notreDame)/events").getDocuments() { (querySnapshot, error) in
if let error = error {
print("There was an error getting the documents: \(error)")
} else {
self.documentsID = querySnapshot!.documents.map { document in
return DocID(docID: (document.documentID))
}
self.tableView.reloadData()
}
}
}
在这个函数中,您可以看到我的另一个常量“notreDame”和另一个存储的文档 ID。如果有人知道一种简单的方法来做到这一点,那就太好了。是的,我检查了 Firebase 文档,谢谢你的提问。