从 FirebaseDB 获取价值
Posted
技术标签:
【中文标题】从 FirebaseDB 获取价值【英文标题】:Getting Value From FirebaseDB 【发布时间】:2017-04-28 14:37:07 【问题描述】:我试图从我的 firebasedb 中获取值,在运行时,ref.observeSingleEvent(of: .value, with: snapshot in
导致致命错误 unexpectedly found nil while unwrapping an Optional value
。我敢肯定你能说出来......我不知道我在做什么......提前谢谢你......
func geths() -> Int
var sch:Int = 0
var nam:String = ""
print("start geths")
ref.observeSingleEvent(of: .value, with: snapshot in
if (snapshot.exists())
print("snapexist")
if let snapval = snapshot.value as? [String:AnyObject]
let hs = snapval["hs"] as? String
let name = snapval["name"] as? String
self.hso = hs!
self.nameo = name!
nam = self.nameo
if let myNumber = NumberFormatter().number(from: self.hso)
let i = myNumber.intValue
sch = i
else
sch = 0
else
print("error")
else
print("error")
)
return sch
编辑************ 仍然不起作用:(同样的错误
func geths() -> Int
var sch:Int = 0
var nam:String = ""
print("start geths")
ref.observeSingleEvent(of: .value, with: (snapshot) in
if (snapshot.exists())
print("snapexist")
let snapval = snapshot.value as? NSDictionary
let hs = snapval?["hs"] as? String ?? ""
let name = snapval?["name"] as? String ?? ""
if (hs != nil)
self.hso = hs
else
self.hso = "0"
if (name != nil)
self.nameo = name
else
self.nameo = "bob"
nam = self.nameo
if let myNumber = NumberFormatter().number(from: self.hso)
let i = myNumber.intValue
sch = i
else
sch = 0
else
print("error")
)
return sch
【问题讨论】:
首先,您的 print("snapexist") 是错误的,因为在这一行上它是不正确的,请使用 snapshot.exists() 检查。发生致命错误,因为您尝试使用 !一个为零的值。我认为是因为 hs 或 name 为 nil 现在看起来好多了:) @Retterdesdialogs 我现在该怎么办? @Likas,你如何初始化你的 firebase 引用,即“ref”? @prabhu var ref: FIRDatabaseReference! 【参考方案1】:像这样创建 firebase 参考:
var ref: FIRDatabaseReference!
ref = FIRDatabase.database().reference()
更多详情请点击此链接: https://firebase.google.com/docs/database/ios/read-and-write
【讨论】:
【参考方案2】:你必须初始化 ref 变量,你只是声明它
var ref: FIRDatabaseReference!
例如
var ref: FIRDatabaseReference! = FIRDatabase.database().reference(withPath: "hs")
您可以在此处阅读有关使用 Firebase 的示例: https://www.raywenderlich.com/139322/firebase-tutorial-getting-started-2
【讨论】:
以上是关于从 FirebaseDB 获取价值的主要内容,如果未能解决你的问题,请参考以下文章