ios - Firebase 观察者实际上做了什么?

标签 ios swift firebase firebase-realtime-database

假设这个观察者是在应用启动时创建的

ref.observe(.value, with: { (snapshot) in
    // do something
})

幕后发生了什么?应用程序如何知道值何时发生变化?我能想到的就是这个

while (true) {
    ref.observeSingleEvent(of: .value, with: { (snapshot) in
        // if value is different do something
    })
}

最佳答案

Firebase 客户端与其后端服务器保持开放的套接字连接。当您附加观察者时,它会将该信息发送到服务器,服务器将从那时起跟踪观察到的位置。服务器还发回该位置的当前值(或缺少当前值)。客户端将立即使用该值触发/调用您的完成 block 。

在此初始流程之后,每当该位置的值发生变化时,Firebase 服务器都会通过打开的套接字向客户端发送更新。当客户端收到这样的更新时,它会使用更新后的值(或没有更新后的值)再次调用完成 block 。

关于ios - Firebase 观察者实际上做了什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42843555/

相关文章:

ios - swift : Save & Show selected indexPath in static Table View

ios - ScrollView 缩放问题

swift - Swift 中的 IBDesignable NSTextField

android - firebase - 每周向注册用户发送时事通讯

java - 如何修复 Firebase 身份验证中的空指针异常?

ios - 安装企业 ios 应用程序而无需信任设备管理

ios - 自动化 wkwebview 双击

arrays - 使用过滤器在数组 Swift 3 中查找键

java - 单击 ListView 项时如何在详细 Activity 上加载 Firebase DB 值

ios - 在 Swift 中共享位置