开发者社区> 问答> 正文

将用户评级的值设置为Firebase数据库

我试图将用户的投票发送到FireBase,并将其保存在特定用户的下面。

class User: NSObject {
    var id: String?

    init(dictionary: [String: AnyObject]) {
        self.id = dictionary["id"] as? String
    }

    var ref: DatabaseReference!
    var numberOfGood = 0

    init(id: String? = nil) {
        self.id = id
        ref = Database.database().reference().child("users").childByAutoId()
    }

    init(snapshot: DataSnapshot){
        ref = snapshot.ref
        if let value = snapshot.value as? [String : Any] {
            numberOfGood = value["numberOfGood"] as! Int
        }
    }

    func save() {
        let postDictionary = [
            "id" : self.id,
            "numberOfGood" : self.numberOfGood,
            ] as [String : Any]
        self.ref.setValue(postDictionary)
    }
}

在viewController的投票位置,我将投票本身处理如下:

class UserRatingClass {
    var numberOfGood = 0

    var ref = Database.database().reference().child("users").childByAutoId()

    func good() {
        numberOfGood += 1
        ref.child("numberOfGood").setValue(numberOfGood)
    }
}

var userRating: UserRatingClass! {
    didSet {
        let x = userRating.numberOfGood

        self.good.setTitle("\(x) ", for: [])

    }
}

 @IBAction func goodReview(_ sender: UIButton) {
    userRating.good()
    let x = userRating.numberOfGood
    self.good.setTitle("\(x) ", for: [])
}```  
我尝试了不同的方法

    var StringGood = String(user?.numberOfGood)
    self.ref.child("users").child(StringGood).setValue(x)
在按钮内的动作功能,但通过这个,我总是得到不能使用类型‘(Int?)’的参数列表调用类型“String”的初始化程序。作为一个错误..。

编辑:我像这样调用User.Swive类:

var user: User?

展开
收起
游客5akardh5cojhg 2019-12-08 23:54:01 396 0
0 条回答
写回答
取消 提交回答
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
DTCC 2022大会集锦《云原生一站式数据库技术与实践》 立即下载
阿里云瑶池数据库精要2022版 立即下载
2022 DTCC-阿里云一站式数据库上云最佳实践 立即下载