代码之家  ›  专栏  ›  技术社区  ›  Abdulmoiz Ahmer

无法使用类型为(Any)的参数列表调用“setValue”?,(错误?,数据库引用)—>无效'

  •  1
  • Abdulmoiz Ahmer  · 技术社区  · 5 年前

    我想把结构的物体送到消防基地。

    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 回复  |  直到 5 年前
        1
  •  2
  •   Meeran Tariq    5 年前

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

    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 
            }
    
        2
  •  1
  •   Shehata Gamal    5 年前

    你需要写出不带类型的补全

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