Swift Firebase / Firestore - Считает ли массив только 1 чтение - PullRequest
0 голосов
/ 11 июля 2020

У меня есть массив, который загружает всех пользователей в массив списка пользователей, и мне интересно, считается ли каждый раз, когда загружается массив, 1 чтение, или каждый элемент в счетчике массива был самим прочитанным?

    var userList = [User]()

    func addUserObserver(_ update: @escaping () -> Void) {
        FriendSystem.system.USER_REF.getDocuments { 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()
            }
        }
    }

1 Ответ

1 голос
/ 11 июля 2020

Здесь

        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()
        }

полностью вам не нужен DispatchGroup, поскольку все строки синхронны, также у вас есть только 1 чтение для всех пользователей здесь FriendSystem.system.USER_REF.getDocuments { snapshot, error in количество элементов внутри этого чтения не имеет значения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...