我正在尝试检索我的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类型参数,我可以看到您没有传递该类型。这就是错误的原因。
您正在传递不是URLRequest
的let clients = db.collection("clients")
**URLSession.shared.dataTask(with: clients) { (data, response, error) in**
所以你需要通过正确的类型。