Функция не ожидает корректировки логических значений (путем проверки поля в Firestore) и возвращает значения по умолчанию перед - PullRequest
0 голосов
/ 16 февраля 2019

Я пытаюсь вернуть список логических значений, чтобы проверить, на каком этапе регистрации находится пользователь и зарегистрировался ли он через Facebook или телефон.Функция, которую я сделал, получает пользовательский документ и проверяет наличие двух полей, чтобы увидеть, существуют ли они (интерес и идентификатор).id, потому что только пользователи FB имеют это поле и интересы, потому что это последний шаг процесса регистрации.Похоже, что функция возвращает значения по умолчанию [true, true], прежде чем я даже получу возможность изменить значения.

fileprivate func checkRegistrationComplete(_ uid: String?) -> [Bool] {
    //I will return a list with the first bool to know if it has filled all the info and the second if it has done so through FB or phone
    var userRegistered = true
    var userRegisteredFB = true
    let db = Firestore.firestore()
    let docRef = db.collection("users").document(uid!)
    docRef.getDocument { (document, error) in
        if let document = document, document.exists {
            let dataDescription = document.data()
            userRegistered = dataDescription?["interest"] != nil
            userRegisteredFB = dataDescription?["id"] != nil
            print(userRegisteredFB)
            print(userRegistered)
        } else {
            print("Document does not exist")
        }
    }
    print(userRegisteredFB,userRegistered)
    return [userRegistered,userRegisteredFB]
}

Вывод должен быть [false, true], но он возвращает [true, true].А функции печати показывают, что метод get на самом деле работает, но он показывает после обратного вызова

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