gpt4 book ai didi

json - 我的数据正在写入 Firebase 数据库,但我无法读取它,为什么?

转载 作者:行者123 更新时间:2023-11-28 11:17:20 25 4
gpt4 key购买 nike

我是 swift 和数据库的新手。我要做的就是从我的 firebase 数据库中读取。我正在使用此处提供的示例代码:https://www.firebase.com/docs/ios/guide/retrieving-data.html .我在 override func viewDidLoad(){}

中从我的 viewcontroller.swift 文件中调用它
func getRootRef(){
// Read data and react to changes
println("entered getRootRef")
myRootRef.observeEventType(.Value, withBlock: { snapshot in
println("value1")
println(String(stringInterpolationSegment: snapshot.value))
println("value2")
}, withCancelBlock: { error in
println(error.description)
println("error")
})
println("left getRootRef")
}

输出:

entered getRootRef
left getRootRef
ViewController3
ViewController4
value1
(Function)
value2

我不明白为什么打印出“(函数)”而不是我的数据。读写权限都设置为 true。我正在制作 Mac 应用程序。

最佳答案

你的代码示例没有提供足够的信息来说明你想做什么 - 但是,假设你想打印出 myRootRef 节点的内容...

我相信在 Swift 中,FDataSnapshot.value 被认为是可选的——它可以包含一个值,也可以是 nil。因此我们需要解包值:

myRootRef.observeEventType(.Value, withBlock: { snapshot in     
println( snapshot.value()! )
})

!是变量的强制展开,因此它必须包含一个值。在打印之前应该检查它是否为 nil,否则会导致运行时错误。

这样可能更安全

myRootRef.observeEventType(.Value, withBlock: { snapshot in
if let value: AnyObject = snapshot.value() {
println(value)
}
})

请注意,snapshot.value 可能包含许多不同对象之一:返回的数据类型:* NSDictionary * NSArray * NSNumber(也包括 bool 值)* NSString

关于json - 我的数据正在写入 Firebase 数据库,但我无法读取它,为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30945892/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com