如果应用程序进入后台模式,则会触发 Ondisconnect

2023-11-29

我有以下代码:

func OnlineStatus(userID: String){
        handle = Auth.auth().addStateDidChangeListener { (auth, user) in
            if let user = user {
                // User is signed in.
                self.UID = user.uid

                self.connectedRef.observe(.value, with: { snapshot in
                    if let connected = snapshot.value as? Bool, connected {
                        // print("############################ Connected")
                        self.ref.child(self.UID!).child("OnlineStatus").setValue("ON")
                    } else {
                        // print("############################ Not connected")
                        self.ref.child(self.UID!).child("OnlineStatus").setValue("OFF")
                    }
                    self.ref.child(self.UID!).child("OnlineStatus").onDisconnectSetValue("OFF")
                })
            }}
            }

该函数将在 viewWillAppear 中触发。我们的想法是构建一个简单的存在系统。由于某种原因,当我将应用程序发送到后台而不是让我的 iPhone 进入睡眠状态时, onDisconnect 会被触发。实际上,我希望只有当用户注销或失去互联网连接时,在线状态才会关闭。我的代码或设置有什么问题?


The onDisconnect当客户端与 Firebase 数据库服务器断开连接时,事件会触发,并且当您的应用程序转到后台时,就会发生这种情况。从 Firebase 的角度来看,用户在驶入隧道的火车上和他们的手机进入睡眠状态之间没有区别。在这两种情况下,客户端和服务器之间的连接都会断开,因此onDisconnect() fires.

您通常最终会使用.info/connected and onDisconnect()设置用户最后一次看到时间的值,同时使用onAuthStateChanged()设置正在登录的用户的状态标志。然后,您可以通过首先按照最近的活动时间顺序显示已登录的用户来显示用户列表。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如果应用程序进入后台模式,则会触发 Ondisconnect 的相关文章

  • 从一个模态视图无缝翻转到另一个模态视图,而不显示纯色背景

    我的 iPad 应用程序的 UI 如下 当我点击Settings按钮 我希望对话框水平翻转以显示设置对话框 我这个工作正常 但是 当对话翻转时会显示背景颜色 如你看到的 有什么办法可以让对话框翻转时不显示该颜色块吗 我希望它看起来更加无缝
  • 每 24 小时触发一次方法

    我正在尝试每天在给定时间触发一个方法 我尝试了一些方法 但我无法真正使其发挥作用 任何意见 将不胜感激 此外 如果无论应用程序是否打开它都会触发 那就更理想了 这可能吗 UI本地通知 http developer apple com lib
  • 无法在 Swift 中对闭包进行弱引用

    Update 我试着不弱化地写一下 好像也没有漏的情况 所以也许这个问题已经没有必要了 在 Objective C ARC 中 当你想让一个闭包能够在闭包内部使用它自己时 该块不能捕获对自身的强引用 否则它将是一个保留循环 因此您可以使闭包
  • (Kiss)XML xpath 和默认命名空间

    我正在开发一个 iPhone 项目 需要解析一些 xml xml 可能包含也可能不包含默认名称空间 我需要知道如何解析 xml 以防它使用默认命名空间 由于我需要读取和写入 xml 因此我倾向于使用 KissXML 但我愿意接受建议 这是我
  • 如何在 iPhone 上使用带有线程的 sqlite + fdbm 库

    相关这个问题 https stackoverflow com questions 1082554 我想把数据加载放在后台 但是 我收到 库例程调用不按顺序 错误 In 这个所以线程 https stackoverflow com quest
  • 使用未解析的标识符“FlurryAdInterstitial”

    我正在尝试整合Flurry Interstitial Ads使用cocoapods in Swift and Xcode 7 1 1 我正在关注开发人员雅虎网站上的此文档 https developer yahoo com flurry d
  • UIViewControllerAnimatedTransitioning:旋转更改后黑屏片段

    我已经创建了一个视图控制器转换 只要我不更改设备方向 一切都正常 图 1 显示了应有的屏幕 然后我切换到下一个视图控制器 在其中更改方向 现在我回到第一个视图控制器并再次切换方向 然后我得到的结果如图 2 所示 出现黑色边框 请不要介意屏幕
  • iOS 7 上 Safari 浏览器的用户代理

    我只想在带有 Safari 浏览器的 iPhone 和 iPod 中打开我的网站 对于 Chrome Dolphin 等任何其他浏览器 它不应该打开 但目前我从几乎所有设备获得相同的用户代理 对于Safari User Agent Stri
  • 将 NSData 转换回音频文件

    我已经转换了我的 caf音频文件到NSData使用以下代码行对象 NSData audioData NSData dataWithContentsOfFile MyRecorderFilePathURL path options 0 err
  • 为什么是 javascript:history.go(-1);无法在移动设备上工作?

    首先 一些背景 我有一个向用户呈现搜索页面 html 表单 的应用程序 填写标准并单击 搜索 按钮后 结果将显示在标准部分下方 在结果列表中 您可以通过单击将您带到新页面的链接来查看单个结果的详细信息 在详细信息页面中 我添加了一个 返回结
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图
  • 如何在 UIScrollView 中启用缩放

    如何启用缩放功能UIScrollView 答案是here https developer apple com documentation uikit uiscrollview 滚动视图还可以处理内容的缩放和平移 当用户做出捏合或张开手势时
  • 如果我使用自定义 UITableViewCell,是否需要设置 heightForRowAtIndexPath?

    如果我使用自定义 UITableViewCell 是否需要设置 heightForRowAtIndexPath 在我的 NIB 中 我已经设置了单元高度 当我覆盖 heightForRowAtIndexPath 时 单元格的内容不会出现 即
  • 如何解决 Xcode 5 中的红色(已移动)文件?

    在 Xcode 4 中 当您要移动文件时 可以通过单击右侧菜单中的按钮并通过 Finder 选择新位置来解析文件的新位置 在 Xcode 5 中 右侧菜单中没有按钮 我还没有找到任何方法通过右键单击文件或顶部菜单栏选项来指定文件的新位置 在
  • 从应用程序启动 iPhone 设置屏幕?

    我正在开发一个应用程序 我希望按下按钮时 iPhone 设置屏幕应该打开 苹果有访问限制吗 到底能不能 如果能的话怎么办 不 你不能那样做 但是 作为替代方案 您可以使用这个框架 http www inappsettingskit com
  • 当直接从 usdz 文件而不是 Reality Composer 文件加载模型时,如何在 RealityKit 中渲染阴影?

    将模型直接从 usdz 文件添加到场景锚点时 模型下方不会出现接地阴影 如果您将模型导入 RealityComposer 并添加 RealityComposer 场景 则会出现这些 但是 您可以在不使用 RC 的情况下启用接地阴影吗 我尝试
  • 在 Swift 中从 Parse 加载图像

    我成功地将数据从 Parse 提取到 swift 中 但我的图像似乎没有按照我的方式工作 在我的 cellForRowAtIndexPath 方法中 我执行以下操作 var event AnyObject eventContainerArr
  • 像 TraceGL 一样分析 Objective C 中的代码路径?

    TraceGL 是一个非常简洁的项目 它允许 JS 程序员跟踪 Javascript 中的代码路径 它看起来像这样 我想为 Objective C 构建类似的东西 我知道运行时使跟踪方法调用变得相当容易 但是我如何跟踪控制流 例如 在上面的
  • 更改 iOS7 中 UIAlertView 的字体大小

    我想更改alertView中消息文本和标题文本的字体大小 苹果网站上没有任何文档谈到这一点 但苹果在其子类注释中表示 UIAlertView 类旨在按原样使用 请参考以下链接 https developer apple com librar
  • 隐藏选项卡栏项目并对齐其他选项卡项目

    在我的应用程序中 我有 4 个选项卡栏项目 我正在 XIB 文件中添加这 4 个选项卡栏项目 最初我必须显示 3 个选项卡栏项目 同步后我必须在我的应用程序中显示第 4 个选项卡栏项目 因此 为此 我使用以下代码隐藏第四个选项卡栏项目 se

随机推荐

  • R Shiny 中的反应式数据框

    我有一个由多个类别和月份组成的数据框 每行是参与者的 1 次交互 因此我想通过热图按月份和不同类别显示他们全年的交互计数 总共 490 万行 这意味着全年总共有 490 万次交互 我尝试使用输入来指示列名称 并尝试被动地更改 X 轴 但它似
  • 如何组合相等的序列元素(函数式编程)?

    我想编写一个函数 它接受序列 并返回具有相同元素分组的序列 如 gt 我使用的是序列 而不是列表 但有些功能是相似的 我正在考虑使用的一些功能是map reduce tabulate filter append等 Reduce 接受一个关联
  • 使用 Berkshelf 解决递归 git Cookbook 依赖关系

    TL 博士版本 Berkshelf 是否能够解决基于 Git 的说明书中的递归依赖关系 如果可以 如何解决 我尝试使用 Berkshelf 管理我的 Chef 食谱依赖项 这些食谱都存储在内部 Git 存储库中 依赖关系如下 env doc
  • 在mac 10.12上构建aosp

    我曾经在我的Mac上构建aosp 最近我升级了 mac os Mac Sierra 10 12 我在构建项目时收到此错误消息 找不到支持的 mac sdk 10 8 10 9 10 10 10 11 mac sdk 版本已升级到 10 12
  • 如何使用 NSString 的 sizeWithFont 和 drawInRect 来确定要绘制的字符串大小

    我正在使用 iOS 中的 CGContext 绘制多个图像 页面 我在我的应用程序中广泛使用了 sizeWithFont 和 drawInRect 组合 我需要做的是将一大块文本拆分到多个页面上 我可以调整它的大小并确定它是否需要另一页 但
  • Object.keys() 复杂性?

    有人知道 ECMAScript5 的 Object keys 在常见实现中的时间复杂度吗 是吗O n for n钥匙 假设采用哈希实现 时间与哈希表的大小成正比吗 我正在寻找语言实现者的保证或一些现实世界的基准测试 看来是O n 在 V8
  • 将小三角形水平居中在 div 底部并按响应和比例调整大小

    使用 CSS 我试图实现以下响应屏幕大小调整的效果 用于响应式设计 具体来说 我希望随着浏览器窗口变小 三角形也按比例变小 我将其模拟为 PNG 不是 HTML CSS 到目前为止 我使用此代码作为基础 其中 2 个 div 堆叠在一起 C
  • linq 查询表单

    如何将以下代码转换为 linq 或谓词表达式 List
  • RoboSpice 使用 OrmLite 持久保存 JSON 数组

    我正在将 RoboSpice 与 Spring for Android 结合使用 并希望使用 OrmLite 持久保存对象的 JSON 数组 GSON 用于 JSON 编组 使用默认缓存 一切都按预期工作 但OrmLite似乎不喜欢对象数组
  • 'multiprocessing.resource_sharer' 中的 AttributeError 'DupFd' | Python 多处理 + 线程

    我正在尝试在多个人之间进行通信threading Thread s 执行 I O 密集型任务和多个multiprocessing Process es 执行 CPU 密集型任务 每当一个线程为一个进程找到工作时 它就会被放到一个进程上mul
  • 即使设置了操作的优先级和依赖关系,操作队列也不会按顺序执行

    我正在进行三个 api 调用 并希望 API1 应首先执行 完成后应执行 API2 然后执行 API3 我为此使用了操作队列 并添加了对操作的依赖性 我也尝试设置优先级 但没有按顺序调用 api 帮我看看如何正确制作 代码是这样的 let
  • 在组内计算值变化之后和之前的值,为每个唯一的转变生成新变量

    我正在努力计算组内唯一值的出现次数 id 我正在看TF When TF我想从那一点开始向前和向后计算变化 这个计数应该存储在一个新变量中PM 以便PM 同时保留正负每个独特的转变 in TF 根据我收集的信息 我需要使用rle 但我有点卡住
  • 在 C++ 变量声明中使用 struct 关键字

    我有一种感觉 这可能与 C 语法有关 但我是从 C 开始我的编程生活的 所以我不确定 基本上我见过这个 struct tm t memset t 0 sizeof struct tm 我对这种语法有点困惑 因为通常我希望上面的内容看起来像这
  • 无法通过套接字'/tmp/mysql.sock连接到本地MySQL服务器

    当我在测试套件期间尝试连接到本地 MySQL 服务器时 它 失败并出现错误 OperationalError 2002 Can t connect to local MySQL server through socket tmp mysql
  • 滚动 Swift 时 tableView 的值重复

    我有一个 tableView 来显示工作日的时间 在tableView中使用timingsArray来显示计时 timingObj 类型的timingsArray class timingObj var dayNo Int var open
  • 溢出:隐藏在 Safari 中不起作用[关闭]

    很难说出这里问的是什么 这个问题是含糊的 模糊的 不完整的 过于宽泛的或修辞性的 无法以目前的形式得到合理的回答 如需帮助澄清此问题以便重新打开 访问帮助中心 我遇到了一个问题 我不明白 我制作 YouTube 图像的方法是将它们放入一个容
  • Javascript 为警报分配变量

    我想知道你能为警报分配一个变量吗 它的真正含义和作用是什么 例如 var a alert test 我尝试了一下 一旦页面加载 就会弹出警报 其中变量a遗迹 undefined 当我打电话的时候 难道我们不应该让它成为一个匿名函数 里面有警
  • 我可以在一行中将多个对象变暗为整数/变体/等吗?

    在VBA中 我可以Dim以这种简洁的方式将多个对象作为整数放在一行中 或者仅声明d是一个整数 Dim a b c d As Integer 您可以测试 Sub test Dim a b c d As Integer Debug Print
  • 如何通过 WebRequest 调用 MVC 操作并通过 Active Directory 验证请求?

    我知道这个标题很拗口 我已经把大部分事情都准备好了 我只需要确认我是否可以做我正在尝试的事情 我正在使用 ASP NET MVC 3 我有一个应用程序 它具有我像 Web 服务一样使用的控制器 控制器上有一个方法 它返回一个字符串 即 js
  • 如果应用程序进入后台模式,则会触发 Ondisconnect

    我有以下代码 func OnlineStatus userID String handle Auth auth addStateDidChangeListener auth user in if let user user User is