Swift Firebase如何向用户添加自定义分支?

时间:2018-12-22 01:47:29

标签: ios swift firebase firebase-realtime-database

我正在尝试添加一个自定义分支,该分支列出用户的所有朋友。目前,我拥有添加用户电子邮件和姓名的代码(请参见下面的照片中的user1)。

let ref = Database.database().reference(fromURL: FIREBASE_GAME)



        let usersReference = ref.child("users").child(uid)




        let values = ["name" : name, "email" : email]

        usersReference.updateChildValues(values, withCompletionBlock: { (err, ref) in



            if(err != nil) {

                print(err!)

                return

            }

我会在值字典中添加“朋友”作为键,然后将该值作为子分支吗?我不知道代码中会是什么样子。我在Firebase中手动设置了user2(这是我想在代码中执行的操作)。我是Firebase的新手,大多数资源都提供了非常基本的示例。我将不胜感激任何帮助。

u

2 个答案:

答案 0 :(得分:1)

我认为您正在寻找这个:

let values = ["name" : name, "email" : email, "friends": [ "jake": false, "mike": true ]]

usersReference.updateChildValues(values, withCompletionBlock: { (err, ref) in
    if(err != nil) {
        print(err!)
        return
    }

或者,您可以通过单独的呼叫来编写/更新朋友:

usersReference.child("friends").updateChildValues(["jake": false, "mike": true])

答案 1 :(得分:0)

以以下格式创建模型类。您需要在Firebase控制台中更改对象Friend。

class ListModel: NSObject {
    var UID:String?
    var Name:String?
    var Email:String?
    var Friends:[Friend]?
}

class Friend : NSObject {
   var Name : String?
   var Status : Bool?
}

在View Controller中,您可以使用以下代码进行访问

var Obj : ListModel?
var ListArr = [ListModel]()



let ref = Database.database().reference().child(“users”)
        ref.observe(.childAdded, with: { (snapshot) in
            print(snapshot)
            guard let dictionary = snapshot.value as? [String : AnyObject] 
else {
                return
            }

            let Obj = ListModel()
            Obj.UID = snapshot.key
            Obj.Name = dictionary["name"] as? String
            Obj.Email = dictionary["email"] as? String

            let friendsArr  = dictionary[“friends”] as? NSArray
            var friendObj = [Friend]()
            if friendsArr != nil{
                for dict in friendsArr as! [[String: AnyObject]]  {
                    let friend = Friend)
                    friend.Name = dict["name"] as? String
                    friend.Status = dict["mobile"] as? Bool
                    friendObj.append(friend)
                }
            }
            Obj. friendsArr = friendObj
            self.ListArr.append(Obj)




}, withCancel: nil)