是否可以在firestore查询中使用完成块?

时间:2017-11-25 15:40:32

标签: swift firebase-authentication google-cloud-firestore

我目前有一个Firestore数据库引用,用于查询试图查找具有特定用户名的用户的数据。我收到用户后想尝试登录。但是,我注意到查询用户的代码块会在调用后立即返回。有没有办法添加完成块或至少停止程序,直到它完成查询。

u.name = name
global.db.collection("users").whereField("username", isEqualTo: u.name).getDocuments(completion: { (snap, error) in
    if error != nil {
        print(error?.localizedDescription as Any)
        return
    }
    for doc in (snap?.documents)! {
        u.email = doc.data()["email"] as! String
    }
})

Auth.auth().signIn(withEmail: u.email, password: password, completion: { (user, error) in
    if error != nil {
        print(error?.localizedDescription as Any)
        return
    }
    print("Succesfully Logged In")
    self.toListSelector(user: u)
})

这是指向我的Firestore数据库图像的链接 https://i.stack.imgur.com/hI1iY.png

1 个答案:

答案 0 :(得分:2)

您需要将signIn INSIDE放在getDocuments处理程序中,可能是在for循环之后?