Загрузка комментариев в базу данных firebase с помощью swift - PullRequest
0 голосов
/ 23 ноября 2018

Я пытаюсь загрузить комментарии в сообщения, чтобы моя структура базы данных была такой же, как на скриншоте, моя функция загрузки работает для загрузки комментариев, но я не уверен, как создать функцию для загрузки их в соответствующее сообщение.,Если я пройду через postID, могу ли я загрузить комментарии, используя это?

func uploadMessage(withContent content: String, withIcon icon: String, withColor color: String, withDate date: String, withuserName userName: String,sendComplete: @escaping (_ status: Bool) -> ()){
        REF_FEEDMESSAGES.childByAutoId().updateChildValues(["content" : content, "color" : color, "icon" : icon, "date" : date, "userName" : userName])
        sendComplete(true)
    }


func getFeedMessages(handler: @escaping (_ feedMessages:[FeedMessages]) -> ()){
        var feedMessagesArray = [FeedMessages]()
        var commentArray = [messageComments]()


        REF_FEEDMESSAGES.observeSingleEvent(of: .value) { (feedMessagesSnapshot) in

            guard let feedMessagesSnapshot = feedMessagesSnapshot.children.allObjects as? [DataSnapshot] else {return}
            for messages in feedMessagesSnapshot {

                let content = messages.childSnapshot(forPath: "content").value as? String ?? "Joe Flacco is an elite QB"
                let icon = messages.childSnapshot(forPath: "icon").value as? String ?? "none"
                var color = messages.childSnapshot(forPath: "color").value as? String ?? "bop"
                let date = messages.childSnapshot(forPath: "date").value as? String ?? "0"
                let userName = messages.childSnapshot(forPath: "userName").value as? String ?? "Anonymous"

                let comments = messages.childSnapshot(forPath: "comments").value as? [String: Any] ?? [:]


                for comment in comments {

                    let theComment = comment.value as? [String: Any]

                    let theContent = theComment?["content"] as? String ?? ""
                    let theIcon = theComment?["icon"] as? String ?? ""
                    let theColor = theComment?["color"] as? String ?? ""
                    let theDate = theComment?["date"] as? String ?? ""
                    let theName = theComment?["userName"] as? String ?? ""

                    let aComment = messageComments(content: theContent, color: theColor, icon: theIcon, date: theDate,  userName: theName)
                    commentArray.append(aComment)
                }

                let messages = FeedMessages(content: content, color: color, icon: icon, date: date, comments: commentArray, userName: userName)
                feedMessagesArray.append(messages)
            }

            handler(feedMessagesArray)
        }
    }

database structure

1 Ответ

0 голосов
/ 23 ноября 2018

вот решение, вам нужен ключ комментария

func uploadComment(withContent content: String, withIcon icon: String, withColor color: String, withDate date: String, withUserName userName: String, withKey key: String, sendComplete: @escaping (_ status: Bool) -> ()){
        REF_FEEDMESSAGES.child(key).child("comments").childByAutoId().updateChildValues(["content" : content, "color" : color, "icon" : icon, "date" : date, "userName" : userName])
        sendComplete(true)
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...