2016-10-23 10 views
1

私は現在、Firebaseデータベースに苦労しています。例えばSwiftのFirebaseデータベース構造から値を取得する変数を設定するには

は、ここに私のデータベース構造

"Menus" : { 
"Day1" : { 
    "mealDes" : "delicious Thai food", 
    "date" : "2016.10.20", 
    "mealname" : "kakoon" 
}, 

だと私は、「日付」の値を取得する変数を設定する必要があります。

のようなもの:プリント(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)") 

      } 

     }) 

私は知っているが頻繁に 、聞かれますが、私は検索すべての質問は:(私を助けてください

を助けていない、私はまだこの上で私の週末の半分を費やしたが.. 。

UPDATE

こんにちは、それは完全に働いた!

私コードは次のようになりますされています

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

は、使用してみてください: -

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) 

     } 
    }) 
+0

ハイテクドラヴィダ、それは感謝を働きました。 – Ian

+0

@Ianコメントでの質問の延長を避け、他の質問を投稿してください。確かにsome1が助けになります.... – Dravidian

+0

Dravidianに感謝 – Ian

関連する問題