我现在正在努力使用Firebase数据库。
例如,这是我的数据库结构
"Menus" : {
"Day1" : {
"mealDes" : "delicious Thai food",
"date" : "2016.10.20",
"mealname" : "kakoon"
},
我需要设置一个变量来获取" date"。
的值类似:print(theDateVar)//得到2016.10.20
我尝试了一些observeSingleEvent和观察方法,他们没有工作!
DataService.ds.REF_MENUS.observeSingleEvent(of: .value, with: { snapshot in
if let date = snapshot.childSnapshot(forPath: "menuDate") as? String {
print ("date is \(date)")
}
})
我知道经常会询问从数据库中检索数据, 但我搜索的所有问题都没有帮助
请帮帮我:(我周末度过了一半的时间,但仍然......
更新
嗨,它完全奏效了!
我的代码现在如下所示:
FIRDatabase.database().reference().child("Menus/Day1").observeSingleEvent(of: .value, with: {(snap) in
if let snapDict = snap.value as? Dictionary <String, AnyObject>{
let date = snapDict["mealPic"] as! String
let OrderInfo = DataService.ds.REF_ORDER
let USERUID = FIRAuth.auth()!.currentUser!.uid
let userinfo = OrderInfo.child("date").child(USERUID).child("data")
userinfo.child("address").setValue("SomeRandomAddress")
userinfo.child("phonenumber").setValue("666888")
}
})
但如果我想将地址值和电话号码值设置为我在其他节点(用户)中的值,该怎么办
"Menus": {
"User" : {
"WbxT2bBgcnYOEn2YUqpvh4mtxvo2" : {
"address" : "taipei City ",
"phonenumber" : "0933555666",
"provider" : "Firebase"
}
我在observeSingleEvent中再次使用observeSingleEvent吗?
答案 0 :(得分:0)
尝试使用: -
FIRDatabase.database().reference().child("menus/Day1").observeSingleEvent(of: .value, with: {(snap) in
print(snap)
if let snapDict = snap.value as? [String:AnyObject]{
let date = snapDict["date"] as! String
print(date)
}
})