首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >根据在firebase数据库中找到的值设置开关

根据在firebase数据库中找到的值设置开关
EN

Stack Overflow用户
提问于 2017-10-28 07:59:03
回答 1查看 357关注 0票数 1

我想检查firebase的当前用户onlineOfflineStatus,它将返回“在线”或“离线”,然后当他们登录时,开关被设置为正确的位置为,因为当他们注销时,它应该被设置为离线,这意味着当登录它是离线,虽然我不是很清楚?

代码语言:javascript
复制
let switchControl: UISwitch


func setLeftNavButton() {

    var switchControl=UISwitch()
    switchControl = self.switchControl
    switchControl.isOn = true
    switchControl.setOn(true, animated: false)
    switchControl.addTarget(self, action: #selector(switchValueDidChange), for: .valueChanged)
    self.navigationItem.leftBarButtonItem = UIBarButtonItem.init(customView: switchControl)

}



func setSwitch(){

    let online = "Online"
    let offline = "offline"

    if currentUser?.onlineOfflineStatus == online {

        self.switchControl.isOn


    } else {

        if currentUser?.onlineOfflineStatus == offline

        self.switchControl.offline


    }


}
EN

回答 1

Stack Overflow用户

发布于 2017-10-28 08:18:50

您可以监听连接状态。

根据文档:https://firebase.google.com/docs/database/ios/offline-capabilities#section-connection-state

代码语言:javascript
复制
let connectedRef = Database.database().reference(withPath: ".info/connected")
connectedRef.observe(.value, with: { snapshot in
  if snapshot.value as? Bool ?? false {
    UserDefaults.standard.set(true, forKey: "current_user_is_connected")
  } else {
    UserDefaults.standard.set(false, forKey: "current_user_is_connected")
  }
})

更新你的代码:

代码语言:javascript
复制
func setSwitch(){

    if UserDefaults.standard.bool(forKey: "current_user_is_connected") {
        self.switchControl.isOn = true
    } else {
        self.switchControl.isOn = false
    }
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46984933

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档