ios - iOS Firebase / Firestore - 数组计数多少次读取
问题描述
我有读取数组的代码。我想知道这是否算作 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()
}
}
}
解决方案
读取一份文档需要一次读取操作。该文档包含什么并不重要。一旦您在内存中拥有 DocumentSnapshot,所有字段都可以随意访问。
推荐阅读
- javascript - Javascript 将 setTimeOut 链接到 Promise,寻找一个非常示例
- java - XML NodeList 不为空,但其节点为空
- vba - 在 Word 文档中删除之前运行 sub
- powershell - 如何使用 powershell 中另一个函数的输出运行命令?
- django - Django InlineFormSet Validation 不会引发 ValidationError
- testing - Concordion 报告 - 如何指定外部资源根路径?
- ios - VIPER 模块依赖项
- google-chrome - 登录到 gdrive 时,chromedriver.exe 停止工作弹出窗口出现在 Windows 机器上
- java - 为什么在 Java 的泛型集合中没有默认行为?
- javascript - 在代码行中使用 join()