我有读取数组的代码。我想知道这是否算作1次读取,还是数组中的每个元素都算作读取(使用Firestore)
var userList = [User]()
var removeUserListener: ListenerRegistration!
func addUserObserver(_ update: @escaping () -> Void) {
removeUserListener = FriendSystem.system.USER_REF.addSnapshotListener { snapshot, error in
self.userList.removeAll()
guard error == nil else {
#if DEBUG
print("Error retreiving collection")
#endif
return
}
let group = DispatchGroup()
for document in snapshot!.documents {
let email = document.get("email") as! String
let username = document.get("username") as! String
group.enter()
if email != Auth.auth().currentUser?.email! {
self.userList.append(User(userEmail: email, userID: document.documentID, userName: username))
group.leave()
}
}
group.notify(queue: .main) {
update()
}
}
}
答案 0 :(得分:1)
读取一份文档需要进行一次读取操作。该文档包含什么都没有关系。一旦在内存中保存了DocumentSnapshot,就可以随意访问所有字段。