我正在尝试等待从我的 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/
我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po
尝试通过RVM将RubyGems升级到版本1.8.10并出现此错误:$rvmrubygemslatestRemovingoldRubygemsfiles...Installingrubygems-1.8.10forruby-1.9.2-p180...ERROR:Errorrunning'GEM_PATH="/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/ruby-1.9.2-p180@global:/Users/foo/.rvm/gems/ruby-1.9.2-p180:/Users/foo/.rvm/gems/rub
鉴于我有以下迁移:Sequel.migrationdoupdoalter_table:usersdoadd_column:is_admin,:default=>falseend#SequelrunsaDESCRIBEtablestatement,whenthemodelisloaded.#Atthispoint,itdoesnotknowthatusershaveais_adminflag.#Soitfails.@user=User.find(:email=>"admin@fancy-startup.example")@user.is_admin=true@user.save!ende
在我的Controller中,我通过以下方式在我的index方法中支持HTML和JSON:respond_todo|format|format.htmlformat.json{renderjson:@user}end在浏览器中拉起它时,它会自然地以HTML呈现。但是,当我对/user资源进行内容类型为application/json的curl调用时(因为它是索引方法),我仍然将HTML作为响应。如何获取JSON作为响应?我还需要说明什么? 最佳答案 您应该将.json附加到请求的url,提供的格式在routes.rb的路径中定义。这
我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search
由于fast-stemmer的问题,我很难安装我想要的任何rubygem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=
我收到这个错误:RuntimeError(自动加载常量Apps时检测到循环依赖当我使用多线程时。下面是我的代码。为什么会这样?我尝试多线程的原因是因为我正在编写一个HTML抓取应用程序。对Nokogiri::HTML(open())的调用是一个同步阻塞调用,需要1秒才能返回,我有100,000多个页面要访问,所以我试图运行多个线程来解决这个问题。有更好的方法吗?classToolsController0)app.website=array.join(',')putsapp.websiteelseapp.website="NONE"endapp.saveapps=Apps.order("
我已经构建了一些serverspec代码来在多个主机上运行一组测试。问题是当任何测试失败时,测试会在当前主机停止。即使测试失败,我也希望它继续在所有主机上运行。Rakefile:namespace:specdotask:all=>hosts.map{|h|'spec:'+h.split('.')[0]}hosts.eachdo|host|begindesc"Runserverspecto#{host}"RSpec::Core::RakeTask.new(host)do|t|ENV['TARGET_HOST']=hostt.pattern="spec/cfengine3/*_spec.r
这里有一个很好的答案解释了如何在Ruby中下载文件而不将其加载到内存中:https://stackoverflow.com/a/29743394/4852737require'open-uri'download=open('http://example.com/image.png')IO.copy_stream(download,'~/image.png')我如何验证下载文件的IO.copy_stream调用是否真的成功——这意味着下载的文件与我打算下载的文件完全相同,而不是下载一半的损坏文件?documentation说IO.copy_stream返回它复制的字节数,但是当我还没有下
当我尝试安装Ruby时遇到此错误。我试过查看this和this但无济于事➜~brewinstallrubyWarning:YouareusingOSX10.12.Wedonotprovidesupportforthispre-releaseversion.Youmayencounterbuildfailuresorotherbreakages.Pleasecreatepull-requestsinsteadoffilingissues.==>Installingdependenciesforruby:readline,libyaml,makedepend==>Installingrub