对成员"dataTask(with:completionHandler)"的不明确引用



我正在尝试检索我的Firebase DB集合,对其进行迭代并将其添加到数组中,但很难使其工作。

import Foundation
import Firebase
class Service {
let db = Firestore.firestore()
static let shared = Service()
func fetchClient(completion: @escaping ([Client]) -> ()) {
var clientArray = [Client]()

let clients = db.collection("clients")

**URLSession.shared.dataTask(with: clients) { (data, response, error) in**

// handle error
if let error = error {
print("Failed to fetch data with error: ", error.localizedDescription)
return
}

guard let data = data else {return}

do {
guard let resultArray = try JSONSerialization.jsonObject(with: data, options: []) as? [AnyObject] else
{return}

for (key, result) in resultArray.enumerated() {
if let dictionary = result as? [String: AnyObject] {
let client = Client(id: key, dictionary: dictionary)
clientArray.append(client)
}

completion(clientArray)
}

} catch let error {
print("Failed to create JSON with error: ", error.localizedDescription)
}
}.resume()
}
}

如果我在JSON形式的数据库中使用url,它似乎可以正常工作,但在firestore数据库中它不工作?我已经**突出显示了**出现错误的那一行。

非常感谢您的帮助!

如果您看到的签名

URLSession.shared.dataTask(with: <URLRequest>)
URLSession.shared.dataTask(with: <URLRequest>)

这些需要URLRequest类型参数,我可以看到您没有传递该类型。这就是错误的原因。

您正在传递不是URLRequestlet clients = db.collection("clients")

**URLSession.shared.dataTask(with: clients) { (data, response, error) in**

所以你需要通过正确的类型。

最新更新