【发布时间】:2016-03-21 00:58:13
【问题描述】:
我正在创建前 10 名列表。我需要某些项目的值具有一个值,并且每次有人同意时该值都会增加。它目前没有更新,而是尝试添加相同的值并立即消失。这是我的 Firebase 堆栈....
TopVideos-->
yWfsla_Uh80-->
Value: 1
description: "Download on iTunes : KOR https://itunes.apple.c..."
imageString: "https://i.ytimg.com/vi/yWfsla_Uh80/default.jpg"
rank: 1
title: "EXO_CALL ME BABY_Music Video"
user: "6ef370d4-a1bd-48ce-9ae0-93d2e20f3bc8"
videoID: "yWfsla_Uh80"
我想增加“价值”子/节点,但它没有发生。这是我的代码....
topVideoRef.childByAppendingPath("Value").runTransactionBlock({
(currentData:FMutableData!) in
var value = currentData.value as? Int
if value == nil {
value = 0
}
currentData.value = value! + 1
return FTransactionResult.successWithValue(currentData)
})
我完全按照 Firebase 指南进行操作,但我可能遗漏了一些东西。顺便说一句...如果您知道答案,请包括如何减少值。谢谢。
* 更新 *
我正在像这样创建 videoRef .....
vidRank = Int(self.rankValue.text!)!
let vidArray = ["user" : self.ref.authData.uid, "videoID": self.videoId, "rank": self.vidRank, "title": self.vidTitleText, "description": self.vidDescription, "imageString": self.vidIMG]
let topVideoRef = self.ref.childByAppendingPath("TopVideos/\(self.videoId)")
topVideoRef.setValue(vidArray)
【问题讨论】:
-
你能展示一下你是如何创建
topVideoRef的吗? -
@DavidEast 我已经更新了帖子。我也试过
value!++和currentData.value.updateChildValues。虽然我可能写错了。 -
成功回调有什么要说的?有错误吗?是承诺了吗?你是如何确定它不成功的?数据库中的当前值是多少?什么是认证状态?有哪些安全规则?见how to ask 和creating an mcve。
标签: database swift firebase increment