【发布时间】: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