【问题标题】:Firebase: .observeEventType .ValueFirebase:.observeEventType .Value
【发布时间】:2016-05-28 04:36:00
【问题描述】:

这里是一些与 Firebase 相关的快速代码,它没有按我的预期工作,我想知道我做错了什么。

    let firebaseRootReference = Firebase(url:"https://mywonderfulapp.firebaseio.com/“),
    dataRef = firebaseRootReference.childByAppendingPath(“MyList")
    dataRef = dataRef.childByAppendingPath(key) // key is a String object.

    dataRef.observeEventType(.Value, withBlock: { snapshot in
        for dataItem in snapshot.children {
            let dataKey = (dataItem as? FDataSnapshot)!.key,
            dataVal = (dataItem as? FDataSnapshot)!.value.objectForKey("name") as! String
            print("Found (observeEventType) : \(dataKey) -> \(dataVal)")
        }

        }, withCancelBlock: { error in
            print(error.description)
    })

上面的代码在调试器控制台中打印如下内容:

Found (observeEventType) : SOME-KEY -> SOME-DATA

这完全没问题,这是我在正常情况下所期望的。 但即使我将设备置于飞行模式以停止网络,它仍然会打印相同类型的东西。 当然我已经检查了服务器端,确认没有写入任何内容。

换句话说,虽然没有向服务器写入任何内容,但 dataRef.observeEventType 中的块被调用。

它不会跟踪服务器上确实写入了什么,但如果连接了它会写入什么。 那么我错过了什么?可能没有检查我应该检查的内容?

请注意,正常连接到网络时我发现没有问题。

【问题讨论】:

  • 尝试断开连接方法
  • 在我的情况下如何使用这个 onDisconnect 方法?我所做的有什么问题?
  • 当用户断开连接时,我不会尝试做任何具体的事情。
  • 你的意思是改网调用的块?
  • "为什么我得到报告的数据,就好像它已经写入服务器,而实际上没有?"是我唯一的问题。

标签: swift firebase firebase-realtime-database


【解决方案1】:

有一些关于基本函数setValue(value: AnyObject!)的描述

  • 写入的效果将立即可见,并对应 事件将被触发。将数据同步到 Firebase 服务器也将启动。

所以观察将在同步之前或同时触发

【讨论】:

  • 抱歉,我的问题似乎不清楚。我已经在 Firebase 文档中阅读了关于 onDisconnect() 的内容(在您发表第一条评论之后),但我并没有真正了解如何使用它。更重要的一点是,我在服务器上写完全没有问题。这工作正常。我的问题是了解当我没有连接时会发生什么。
  • 你没有连接时什么都不做?我对此感到困惑
猜你喜欢
  • 2016-10-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多