首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Swift - Firebase快照变成变量

问Swift - Firebase快照变成变量
EN

Stack Overflow用户
提问于 2016-05-26 19:57:54
回答 1查看 306关注 0票数 0

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

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

这是我的密码:

代码语言:javascript
复制
    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)
    }
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-26 21:07:21

在这种情况下,"myVar“将始终是1,因为类型值的单个事件是异步的。因此,执行的先后顺序是:

代码语言:javascript
复制
var myVar = 1 as AnyObject

然后..。

代码语言:javascript
复制
if myVar as! NSObject == 0 {
 print("Hasn't voted yet")
 pollRef.childByAppendingPath("leave").childByAutoId()
 myVar = 1
 print(myVar)
}

(这段代码从不执行,因为myVar总是1),最后它执行回调的内容.

代码语言:javascript
复制
{ snapshot in
  myVar = snapshot.value
  print(myVar)
}, withCancelBlock: { error in
  print(error.description)
}

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

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37469914

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档