是否可以在Firebase中同时将两个不同的Childs上传到现有的孩子?

时间:2017-05-09 20:15:29

标签: ios firebase swift3 firebase-realtime-database

我希望用户添加好友。当他点击按钮addFriend时,应该创建两个新的Childs并上传到数据库。新信息上传到的孩子称为“befreundet”(是朋友)。 应该创建的JSON树应该是这样的:

befreundet
   loggedinUser.uid
         otherUser.uid
                 otherUser.username: " " 
                 otherUser.ProfilePic: " "
   otherUser.uid
         loggedinUser.uid
                 loggedinUser.username: " " 
                 loggedinUser.ProfilePic: " "

以下是代码:

 @IBAction func addFriend(_ sender: Any) {

    if self.befreunden.titleLabel?.text == "Als Freund hinzufügen" {


        let friendRef = "befreundet/\(self.loggedInUSer!.uid)/\(self.otherUseruid!)"
        let FreundeRef = "befreundet/\(self.otherUseruid!)/\(self.loggedInUSer!.uid)"

        let FriendData = ["username":self.loggedinUSerData?["username"] as! String,
                          "ProfilePic":self.loggedinUSerData?["urltoImage"] as! String]
        let BefreundenData = ["username":self.otherUser?["username"] as? String,
                              "ProfilePic":self.otherUser?["urltoImage"] as? String]

        let childUpdats = [friendRef:BefreundenData,
                           FreundeRef:FriendData]

        databaseRef.updateChildValues(childUpdats)

        let FreundeAnzahl:Int?
        let FriendCount:Int?

        if self.otherUser?["AnzahlFreunde"] == nil {

            FreundeAnzahl = 1
        }else {

            FreundeAnzahl = self.otherUser?["AnzahlFreunde"] as! Int + 1

        }

        if self.loggedinUSerData?["AnzahlFreunde"] == nil {

            FriendCount = 1
        }else {

            FriendCount = self.loggedinUSerData?["AnzahlFreunde"] as! Int + 1
        }

    databaseRef.child("users").child(self.loggedinUSerData?["uid"] as! String).child("AnzahlFreunde").setValue(FreundeAnzahl)
    databaseRef.child("users").child(self.otherUseruid!).child("AnzahlFreunde").setValue(FriendCount)


    }else {

        databaseRef.child("users").child(self.loggedinUSerData?["uid"] as! String).child("AnzahlFreunde").setValue(self.loggedinUSerData?["ANzahlFreunde"] as! Int - 1)
        databaseRef.child("users").child(self.otherUseruid!).child("AnzahlFreunde").setValue(otherUser?["AnzahlFreunde"] as! Int - 1)

         let friendRef = "befreundet/\(self.loggedinUSerData?["uid"] as! String)/\(self.otherUseruid!)"
        let FreundeRef = "befreundet/\(self.otherUseruid!)/\(self.loggedinUSerData?["uid"] as! String)"
        let childUpdates2 = [friendRef:NSNull()]
        let FreundeUpdate2 = [FreundeRef:NSNull()]
        databaseRef.updateChildValues(childUpdates2)
        databaseRef.updateChildValues(FreundeUpdate2)
    }
}

我现在面临的问题是,只有“FreundeRef”正在上传。 有谁知道为什么会这样?

0 个答案:

没有答案