Firebase:.observeEventType .Value

时间:2016-05-28 04:36:01

标签: swift firebase firebase-realtime-database

以下是一些与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中的块。

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

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

1 个答案:

答案 0 :(得分:0)

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

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

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