Невозможно вызвать 'setValue' со списком аргументов типа '(Any ?, (Error ?, DatabaseReference) -> Void)' - PullRequest
1 голос
/ 18 марта 2019

Я хочу отправить объект структуры в firebase.

struct commentsData{
        var commentsText:String
        var commentTime:String
        var commentDay:String
        var commentMonth:String
        var commentYear:String
    }

    var data = commentsData(commentsText: "", commentTime: "", commentDay: "", commentMonth: "", commentYear: "")

    Database.database().reference().child("CommentData").child(commentId).setValue(data){
                     (error:Error?, ref:DatabaseReference) in


                }

Какие изменения я должен сделать, чтобы решить это.

Ответы [ 2 ]

2 голосов
/ 18 марта 2019

Я думаю, что вы не можете добавлять такие объекты напрямую, вместо этого вы должны передать данные в виде словаря.Таким образом, вы можете добавить следующий код внутри вашей структуры:

var dict:[String:String] {
    return [
        "commentsText": commentsText,
        "commentTime": commentTime,
        "commentDay": commentDay,
        "commentMonth": commentMonth,
        "commentYear": commentYear
    ]
}

, а затем

var data = commentsData(commentsText: "1", commentTime: "1", commentDay: "1", commentMonth: "1", commentYear: "1")


Database.database().reference().child("CommentData").child(commentId).setValue(data.dict) {  (error, ref) in
          // continue here 
        }
1 голос
/ 18 марта 2019

Вам нужно написать завершение без типов

var data:[String:Any] = ["key":"value"] //
FIRDatabase.database().reference().child("CommentData").child(commentId).setValue(data) { (err, ref) in

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...