gpt4 book ai didi

database - Firebase 值(value)没有随 Swift 增加?

转载 作者:行者123 更新时间:2023-11-30 10:05:39 25 4
gpt4 key购买 nike

我正在创建一个前 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)

最佳答案

我通过用文本替换字段来修改代码,然后创建两个函数,链接到窗口上的两个按钮

然后运行代码,它似乎可以工作。

func clickedButton1() {

print("Button1Action")

let myRootRef = Firebase(url:"https://your-app.firebaseio.com")

let vidArray = ["user" : "some user id",
"videoID": "some video id",
"rank": "some rank",
"title": "a title",
"description": "a description",
"imageString": "an image"]


let topVideoRef = myRootRef.childByAppendingPath("TopVideos/\("vid_id_0")")
topVideoRef.setValue(vidArray)

}

和第二个函数

func clickedButton2() {

print("Button2Action")

let myRootRef = Firebase(url:"https://your-app.firebaseio.com")

let topVideoRef = myRootRef.childByAppendingPath("TopVideos/\("vid_id_0")")

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)
})

}

当点击按钮1时,初始数据被写出。

每次单击按钮 2,值节点都会增加 1。

我猜测要么您在某个时刻覆盖了整个节点,要么有一个附加到 Value 的 onDisconnect 在您退出应用程序时将其删除。

或者...它被设置为 nil,这将导致您所看到的结果。它会有一个值然后突然消失。

关于database - Firebase 值(value)没有随 Swift 增加?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36121581/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com