测试使用案例:火力认证监听器和网络连接
我的方案,我初始化我的应用程序在Xcode,登录到火力和运行我的应用程序 成功。然后我在Xcode中停止调试器,然后在我的MAC上登录 “关闭Wifi”。然后我再次在Xcode中初始化我的App。
在调试器中,我看到我的代码初始化一个身份验证侦听器,并基于之前缓存的经过身份验证的用户信息的值进行初始化。
我还在控制台日志中看到以下异常。
2017-06-02 09:29:21.281 MusicPoll [7053] [Firebase/Core] [I-NET901017]遇到网络错误。代码,错误:-1009,错误域= NSURLErrorDomain代码= -1009“Internet连接似乎处于脱机状态。”的UserInfo = {NSUnderlyingError = 0x60800005f7d0 {错误域= kCFErrorDomainCFNetwork代码= -1009 “(空)” 的UserInfo = {_ kCFStreamErrorCodeKey = 50,_kCFStreamErrorDomainKey = 1}},NSErrorFailingURLStringKey = https://play.googleapis.com/log,NSErrorFailingURLKey = https://play.googleapis.com/log,_kCFStreamErrorDomainKey = 1,_kCFStreamErrorCodeKey = 50,NSLocalizedDescription =因特网连接似乎不在线。}
由于我没有连接到网络,我想检测此 条件,并要求用户检查他/她的网络连接并重试。
我的问题是我应该使用哪种Firebase方法来检查网络连接并可能获取错误。 (我无法找到可能在听者的回调被 返回错误代码。)
我的代码:
...
fileprivate VAR authListener:FIRAuthStateDidChangeListenerHandle!
FUIAuth.defaultAuthUI()?提供商= [FUIGoogleAuth()]
authListener = FIRAuth.auth()?addStateDidChangeListener {[弱自](AUTH:FIRAuth,用户:FIRUser)在
guard let strongSelf = self else { return }
if let activeUser = user {
strongSelf.hasUserBeenAuthenticated = true
strongSelf.user = activeUser
} else {
strongSelf.hasUserBeenAuthenticated = false
strongSelf.user = nil
}
print("\nFirebaseMgr[setupAuthorization]: hasUserBeenAuthenticated = \(strongSelf.hasUserBeenAuthenticated), user = \(String(describing: strongSelf.user))")
}
谢谢你的留言。我能够进行您描述的网络连接检查。 –