import FirebaseFirestoreSwift
import Firebase
//我创建这个对象是为了映射用户数据并访问它。例如,我可以说user。username//可解码的protocall将读取数据字典,并查找我在数据字典中列出的键/属性名称的确切名称,这使得处理对象和从api下载信息时更容易
struct User: Identifiable, Decodable {
//我可以从firebase中删除uid字段因为这会从firebase中读取文档id并将其存储在这个id属性中,这样我就不必在对象的实际主体中复制该数据
@DocumentID var id: String?
let username: String
let fullname: String
let profileImageUrl: String
let email: String
let stats: UserStats
// This is a computed property saying if the currently logged in user's id is equal to the id on my object (@DocumentID)
var isCurrentUser: Bool { return Auth.auth().currentUser?.uid == id }
}
struct UserStats: Decodable {
let followers: Int
let following: Int
}
在每个变量末尾添加?
@FirestoreQuery
在解码时几乎没有错误处理。
另外,如果您不使用@FirestoreQuery
,请使用do try catch
代替try?