使用Firebase将一个孩子的数据复制到另一个孩子的数据中

时间:2018-01-13 20:57:47

标签: swift firebase firebase-realtime-database

我有这个功能,我检查孩子A是否有孩子,如果不是,我想将孩子B复制到孩子A。

目前我正在尝试获取B的快照并将其写入A.无法使其正常工作。

我是Swift和Firebase的初学者,发现了类似的问题,但在其他语言中我并不了解。

我的代码:

    ref.child("Users").child("Friends").child(String(a)).observe(.value, with: { (snapshot) in
        if(snapshot.exists()){
            if(snapshot.hasChild(String(b))){
              //perform operation on node A
            } else {
                 //Here I want to copy DefaultFriends->x into Users->Friends->x
                //perform operation on node A
         } else {
            //Here I want to copy entire DefaultFriends into Users->Friends
            //perform operation on node A
        }
    })

我的数据库是结构化的:

    ----Users 
    ---------Friends

    //e.g put Child B here

    ----------------2
    -------------------Friend21
    -------------------Friend22

    ---DefaultFriends 
    -------------------1 //Child B
    ---------------------DefaultFriend11
    ---------------------DefaultFriend12
    -------------------2
    ---------------------DefaultFriend21
    ---------------------DefaultFriend22
    ---------------------DefaultFriend23
    ---------------------DefaultFriend24

1 个答案:

答案 0 :(得分:0)

看起来只是为孩子写一个snapshot.value

Swift中的解决方案:

   func copy(a:Int, b:Int){
    let ref = FIRDatabase.database().reference()
    ref.child(String(a)).child(String(b)).observe(.value) { (snapshot) in
        ref.child("Users").child("Friends").child(String(a)).child(String(b)).setValue(snapshot.value)
    }
}