2016-09-25 4 views
0

В настоящее время я следую курсу на Udemy, который учит, как создать чат-приложение с Firebase. Тем не менее, я закончил этот курс пару недель назад, а затем неожиданно пришел обновление Swift 3.0. Я теперь изо всех сил, чтобы преобразовать эту строку в Свифт 3 Firebase:Swift Firebase snapshot.allValues ​​update

firebase.child("Recent").queryOrderedByChild("chatRoomID").queryEqualToValue(chatRoomID).observeSingleEventOfType(.Value) { (snapshot:FIRDataSnapshot) in 


     var createRecent = true 

     if snapshot.exists() { 
      for recent in snapshot.value!.allValues { 
       if recent["userId"] as! String == userId { 
        createRecent = false 
       } 
      } 
     } 

     if createRecent { 

      CreateRecentItem(userId, chatRoomID: chatRoomID, members: members, withUserUsername: withUserUsername, withUserUserId: withUseruserId) 


     } 

    } 

И я пытался сделать это:

firebase.child("Recent").queryOrdered(byChild: "chatRoomID").queryEqual(toValue: chatRoomID).observeSingleEvent(of: .value) { (snapshot:FIRDataSnapshot) in 

     var createRecent = true 

     if snapshot.exists() { 

      if let values = snapshot.value as? [String:AnyObject] { 

       for recent in values { 
        if recent["userId"] as! String == userId { 

        } 
       } 
      } 

       //} 

      } 

     } 

    } 

Но это, конечно, возвращается сообщение об ошибке. Любые идеи о том, как я разрешу этот код-конвертировать?

Заранее спасибо.

+0

Упоминание ошибки и строку ошибок – Dravidian

ответ

3

Попробуйте использовать: -

firebase.child("Recent").queryOrdered(byChild: "chatRoomID").queryEqual(toValue: chatRoomID).observeSingleEvent(of: .value, with: { (snapshot:FIRDataSnapshot) in 

     var createRecent = true 

     if snapshot.exists() { 

      if let values = snapshot.value as? [String:AnyObject] { 

       for recent in values { 
        if let userId = recent.value["userId"] as? String{ 

         } 
       } 
      } 
     } 

    }) 
+0

спасибо! Это сработало! – askaale