Я пытаюсь вернуть список логических значений, чтобы проверить, на каком этапе регистрации находится пользователь и зарегистрировался ли он через 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 на самом деле работает, но он показывает после обратного вызова