我想将结构对象发送到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


                }

我应该做什么改变才能解决。

最佳答案

我认为您不能像那样直接添加对象,而是必须将数据作为字典传递。因此,您可以在结构内部添加以下代码,

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
        }

关于ios - 无法使用类型为((Any ?,(Error ?, DatabaseReference)-> Void)'的参数列表调用'setValue',我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/55222477/

10-10 17:28