Swift Firebase Как мне добавить пользовательскую ветку для моего пользователя? - PullRequest
0 голосов
/ 22 декабря 2018

Я пытаюсь добавить пользовательскую ветку, в которой перечислены все друзья пользователя.В настоящее время у меня есть код для добавления адреса электронной почты и имени пользователя (см. 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

            }

Я бы добавил «друзей» в качестве ключа в свой словарь значений и затем позволил бы значению бытьфилиал?Я не знаю, как это будет выглядеть в коде.Я сделал user2 вручную в Firebase (это то, что я хочу сделать в коде).Я новичок в Firebase, и большинство ресурсов дают очень простые примеры.Буду признателен за любую помощь.

u

Ответы [ 2 ]

0 голосов
/ 22 декабря 2018

Создание класса модели в формате ниже.Вам необходимо изменить объект Friend в вашей консоли Firebase.

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 вы можете получить доступ, используя приведенный ниже код

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)
0 голосов
/ 22 декабря 2018

Я думаю, что вы ищете это:

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])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...