如何使Firebase .observeSingleEventOf函数同步运行

时间:2019-07-11 22:53:51

标签: ios swift firebase firebase-realtime-database

我正在运行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
    }
}

0 个答案:

没有答案
相关问题