Как заставить функцию firebase .observeSingleEventOf работать синхронно - PullRequest
1 голос
/ 12 июля 2019

Я использую функцию Firebase .getSingleEventOf для чтения данных из моей базы данных в моей программе, и это асинхронная функция. Как мне сделать его синхронным (или сделать другую синхронную функцию для размещения кода)?

Я пытался использовать данные, переданные через функцию, но она не работала! Он возвращает только 0 элементов, хотя я знаю, что у меня есть данные с конкретными буквами в моей базе данных.

import Foundation
import Firebase

struct CompeteUserFinderService {

    static func findCompetitors(contains letters: String?) -> [String] {
        //Make sure there was an input
        guard let letters = letters else { return [] }

        var usernames = [String]()

        //Database reference
        let ref = Database.database().reference().child("usernames")
        ref.observeSingleEvent(of: .value) { (snapshot) in

            //Creates an array of all values in the usernames branch
            let value = Array((snapshot.value as! [String: Any]).keys)
            usernames = value.map { $0.lowercased() }.filter { $0.contains(letters.lowercased()) }

        }

        return usernames
    }
}

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