swift firebase迭代每个快照值以更新/设置一个值

时间:2017-06-21 01:00:53

标签: ios swift firebase firebase-realtime-database snapshot

我试图从firebase数据库中获取所有数据,并以不同方式更新或设置(如果为nil)每个值。例如,我有5个用户:

[1-jon likesby:jef,2-jef likesby:nil,3-jake,4-mat,5-taylor likesby:jon]

它应该以不同方式更新/设置每个值(按下按钮更新/设置值并转到下一个值。

我的代码显示我可以迭代,但我对如何设置每个值没有任何想法  或者在firebase快照中是不可能的?若有,请就其他或类似方法提出建议/建议以解决问题。

Database.database().reference().child("posts").observeSingleEvent(of: .value, with: { snapshot in
        print("##########")
        var dictionary = snapshot.value as! [String:AnyObject]

        for(_,value) in dictionary{
            if let firstKey = snapshot.key as? String{

                var likedby = value["Liked By"] as? String
                let name = value["name"] as? String
                let age = value["age"] as? String
                let caption = value["caption"] as? String
                let picURL = value["photoURL"] as? String
                let gender = value["gender"] as? String
                print("TTT")
                print(name, "was liked by",likedby)

                if likedby == nil || likedby != "Othman" {
                    print("****")
                    print(name)

1 个答案:

答案 0 :(得分:2)

Firebase DataSnapshot 只读。它主要用于回读之前从Firebase获取的数据。

您需要使用DatabaseReference.setValue方法来更新给定节点。正如评论中所提到的,DataSnapshot.ref属性提供了一种方便的方法来获取与给定快照相对应的DatabaseReference