【发布时间】:2021-06-06 23:04:32
【问题描述】:
所以我的目标是彻底消除这些错误。我处于一个两难境地,每个决定都会导致一个错误。
我能做的第一件事就是在我的所有查询函数中使用一个字符串插值的集合路径,就像这样:
func getEventName() {
listener = db.collection("school_users/\(user?.uid)/events").order(by: "time_created", descending: true).addSnapshotListener(includeMetadataChanges: true) { (querySnapshot, error) in
if let error = error {
print("There was an error fetching the data: \(error)")
} else {
self.events = querySnapshot!.documents.map { document in
return EventName(eventName: (document.get("event_name") as! String))
}
self.tableView.reloadData()
}
}
}
问题是,当我在模拟器上运行应用程序时,我被限制按下按钮,然后有时我可以按下它们,然后有时它们再次受到限制。这个错误非常令人困惑,因为它从哪里出现毫无意义。
另一个问题是我可以在我的集合路径中的所有查询函数中使用Constants 值。
static let schoolCollectionName = "school_users/\(user?.uid)/events"
这嵌套在Constants 结构内的Firebase 结构中。为了防止 Xcode 出错,我在 Constants 结构之外创建了一个 let users = Auth.auth().currentUser 变量。这个值的问题是,当我把它放在我的所有查询函数集合路径中时,所有按钮都可以随时访问和选择,但是当用户注销并以新用户身份登录时,前一个用户的数据显示在新用户的 tableview 中。
使用Constants 值显然更有意义,因为您可以防止将来出现拼写错误,但我不知道如何摆脱旧用户的数据显示在新用户的表格视图中的错误.提前致谢。
【问题讨论】:
标签: ios swift firebase struct google-cloud-firestore