gpt4 book ai didi

Swift - Firebase 快照到变量中

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

因此,我尝试使用从我的 Firebase 数据库获取的快照来更改变量的内容。

我已经定义了该变量,然后尝试使用 setValue 方法将本地存储的变量的值更改为数据库中保存的值。然而,尽管没有出现错误,我的函数并未按应有的方式运行 - 尽管我的变量显然为“0”,但数据库中没有添加任何内容。

这是我的代码:

    var myVar = 1 as AnyObject

currentUserHasVotedVar.observeSingleEventOfType(.Value, withBlock: { snapshot in
myVar = snapshot.value
print(myVar)
//should be set to '0' from db
}, withCancelBlock: { error in
print(error.description)
})

if myVar as! NSObject == 0 {
print("Hasn't voted yet")
pollRef.childByAppendingPath("leave").childByAutoId()
myVar = 1
print(myVar)
}

最佳答案

在这种情况下,“myVar”将始终为 1,因为 Value 类型的单个事件是异步的。所以执行顺序是第一:

var myVar = 1 as AnyObject

然后..

if myVar as! NSObject == 0 {
print("Hasn't voted yet")
pollRef.childByAppendingPath("leave").childByAutoId()
myVar = 1
print(myVar)
}

(此代码永远不会执行,因为 myVar 始终为 1),最后它执行回调的内容...

{ snapshot in
myVar = snapshot.value
print(myVar)
}, withCancelBlock: { error in
print(error.description)
}

为了访问“currentUserHasVotedVar”引用中的 firebase 路径的值,您必须将验证代码放入回调中。

关于Swift - Firebase 快照到变量中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37469914/

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