Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用异步Swift Firebase函数?_Swift_Asynchronous_Firebase_Firebase Realtime Database_Dispatch - Fatal编程技术网

如何使用异步Swift Firebase函数?

如何使用异步Swift Firebase函数?,swift,asynchronous,firebase,firebase-realtime-database,dispatch,Swift,Asynchronous,Firebase,Firebase Realtime Database,Dispatch,所以基本上我有一个函数,它连接到Firebase,以字符串的形式获取数据,并返回一个字符串,至少我认为是这样 这个问题非常简单,有点愚蠢,但是我如何在不同的线程或内核中调用这个方法呢。对不起,我还不知道这些术语。我正在努力 而且,我认为它不会返回我需要的字符串,那么我该如何实现呢 另外,这不是重复的,因为如果你看所有这些类型的问题,我没有找到一个调用实际方法的问题 typealias someting = (String?) -> Void func getOpposingUser

所以基本上我有一个函数,它连接到Firebase,以字符串的形式获取数据,并返回一个字符串,至少我认为是这样

这个问题非常简单,有点愚蠢,但是我如何在不同的线程或内核中调用这个方法呢。对不起,我还不知道这些术语。我正在努力

而且,我认为它不会返回我需要的字符串,那么我该如何实现呢

另外,这不是重复的,因为如果你看所有这些类型的问题,我没有找到一个调用实际方法的问题

typealias someting = (String?) -> Void
    func getOpposingUsername( _ index: Int, completionHandler: @escaping someting) {
        var opposingUser: String = ""
        self.datRef.child("Bets").child(self.tieBetToUser[index]).observe(.childAdded, with: { snapshot in


            guard let dict = snapshot.value as? [String: AnyHashable] else {
                return
            }

            opposingUser = dict["OpposingUsername"] as! String
            if opposingUser.isEmpty {
                completionHandler(nil)
            } else {
                completionHandler(opposingUser)
            }




        })


    }

更改线程类似于DispatchQueue.main.async{您的代码}这是关于GCD的文档

下面是一个返回字符串的函数示例

func stringReturn() -> String {
  let aString = "a string"
  return aString  
}