我正在等待从我的 firebase 数据库中检索数据并将其存储在字典中。 我正在尝试使用信号量来执行此操作,但出现 NSURLSession/NSURLConnection HTTP load failed (kCFStreamErrorDomainSSL, -9806) 错误 我试图通过更改我的 info.plist 来解决这个问题。但我没有运气。这不是要走的路吗?
import UIKit
import Firebase
var done = false
class ListViewController: UIViewController, UICollectionViewDelegate {
let rootref = FIRDatabase.database().reference()
var item_dict = Dictionary<String,[String]>()
var item_img_dict = Dictionary<String,[String]>()
let semaphore = DispatchSemaphore(value: 0)
let queue = DispatchQueue.global()
override func viewDidLoad() {
super.viewDidLoad()
self.title = "hello!"
print("before calling function==========================")
print("go in to request")
DispatchQueue.global(qos: .userInitiated).async{
self.rootref.child("items").observeSingleEvent(of: .value, with: { (snapshot) in
print("DOING SOMETHING IN FUNCTION !!!!")
for(type_2_container,item_list) in snapshot.value! as! Dictionary<String, AnyObject>{
for(uid_container, item_detail_container) in item_list as! Dictionary<String, AnyObject>{
for(uid, item_detail) in item_detail_container as! Dictionary<String, AnyObject>{
let item_detail_dict = item_detail as? Dictionary<String,String>
if self.item_dict.index(forKey: uid as! String) != nil{
self.item_dict[uid]?.append(item_detail_dict!["item_name"]!)
self.item_img_dict[uid]?.append(item_detail_dict!["item_image"]!)
}else{
self.item_dict[uid] = [item_detail_dict!["item_name"]!]
self.item_img_dict[uid] = [item_detail_dict!["item_image"]!]
}
}
}
}
self.semaphore.signal()
})
}
self.semaphore.wait()
print(self.item_dict)
print(self.item_img_dict)
}
感谢提问。
已经面临同样的问题。
您只需下载新的GoogleService-Info.plist
文件,然后替换为项目中的现有文件。
它会解决你的问题。
如果上述解决方案不适合您,请尝试以下解决方案。
解决方案:2
1 ) 从项目中移除 pod
文件 (How to remove pod file)
2 ) 从项目中删除旧的 GoogleService-Info
文件。
3 ) 下载 GoogleService-Info
并添加到项目中。
4 ) 再次添加 pods
文件。
然后进行测试。
关于ios - 等待 firebase 请求加载以继续的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40623533/
欢迎光临 OGeek|极客世界-中国程序员成长平台 (https://ogeek.cn/) | Powered by Discuz! X3.4 |