swift等待,直到调用函数之前设置数组

时间:2018-03-17 10:50:27

标签: swift xcode

我想调用Shell并等到阻止用户数组完成后才调用fetchArrayOfUsersBlockingTheCurrentUser(),因为我想在加载用户之前解除被阻止的用户fireStoreFetchUsers()在屏幕上。

到目前为止,屏幕在设置阵列之前加载所有用户,仅在离开屏幕并返回屏幕时才起作用

我已尝试过设置,但它多次调用usersarray将多个同一个用户放在屏幕上。

以下代码:

fetchusers

并且函数fireStoreFetchUsers()基本上就是这样;

///从数据库中提取用户

/// users.append(用户)

//重新加载数据

1 个答案:

答案 0 :(得分:1)

不要等待。fireStoreFetchUsers() 移至完成块。

func fetchArrayOfUsersBlockingTheCurrentUser() {

    guard let uid = Auth.auth().currentUser?.uid else { return }
    let db = Firestore.firestore()
    let docRef =  db.collection("Users").document(uid).collection("Users Blocking Me")
    docRef.getDocuments() { (querySnapshot, err) in
        if let err = err {
            print("Error getting documents: \(err)")
        } else {
            for document in querySnapshot!.documents {
                let d = document.documentID
                self.UsersBlockingCurrentUserArray.append(d)
            }
            self.fireStoreFetchUsers()
         }
     }
 }

请遵守变量名称以小写字母开头的命名约定