gpt4 book ai didi

ios - Firebase 能否可靠地用于检测可达性而不是 iOS 可达性 API

转载 作者:可可西里 更新时间:2023-10-31 23:56:26 25 4
gpt4 key购买 nike

我最近开始开发一款由 firebase 提供支持的 iOS 应用。我想知道使用 firebase 的特殊位置 /.info/connected 是否是检测用户是否有互联网连接的好方法。我知道这通常会使用苹果提供的可达性 api 来完成。这是我的想法:在应用程序委托(delegate)中,我将设置类似这样的内容

func application(application: UIApplication, didFinishLaunchingWithOptions
launchOptions: [NSObject: AnyObject]?) -> Bool {
//Configure some stuff
let connectedRef =
Firebase(url:"https://serengeti.firebaseio.com/.info/connected")
connectedRef.observeEventType(.Value, withBlock: { snapshot in
let connected = snapshot.value as? Bool
let userDefaults = NSUserDefaults.standardUserDefaults()
if connected != nil && connected! {
//User is connected
userDefaults.setBool(true, forKey: "connected")
} else {
//User not connected
userDefaults.setBool(false, forKey: "connected")
}
userDefaults.synchronize() //Force value into NSUserDefaults
}

然后在我需要检查连接的函数中(例如,当他们点击 facebook 注册按钮时)我寻找 NSUserDefaults 条目

func authWithFacebook() {
let userDefaults = NSUserDefaults.standardUserDefaults()
if userDefaults.boolForKey("connected") == false {
//Segue to a popup saying internet connection is required
} else {
//Continue with signup
}
}

这是检查互联网连接而不是使用可达性 api 的有效且可靠的方法吗?如果没有,它会以什么方式缺乏。

最佳答案

正如 Jay 所说:Firebase 的 .info/connected 检测用户是否连接到 Firebase 服务器。

用户可能连接到互联网但无法访问 Firebase 服务器的原因有很多。 Firebase 停机可能是其中之一,但设备首次连接到互联网和 Firebase 服务器之间也可能存在各种问题。

但是除非您要替换 iOS 的“您正在上网”图标,否则您的用户可能更感兴趣的是应用程序是否已连接到其后端。如果您使用 Firebase 作为应用程序的后端,.info/connected 非常适合检测它。

关于ios - Firebase 能否可靠地用于检测可达性而不是 iOS 可达性 API,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35207587/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com