Как создать отношения между объектами в FireBase в Swift? - PullRequest
0 голосов
/ 11 июля 2019

У меня есть три объекта в моем быстром приложении. Story, в которой есть StoryItems (например, предложение), которая в свою очередь имеет слова. Эти объекты связаны друг с другом без проблем в базе данных Realm, однако я пытаюсь использовать базу данных Firebase в качестве удаленного бэкэнда для поддержания тех же отношений. Я понимаю, что Firebase - это база данных noSQL, и я пытаюсь «денормализовать» структуру. Denormalising

Чтобы поддерживать связь между историями и storyItems, я пытаюсь создать структуру перекрестных ссылок под названием 'StoriesStoryItems' (см. Фото). Однако мне только удалось получить последний элемент со следующим кодом:

    let storiesStoryItemsRef = ref.child("storiesStoryItems")
    let storyID = storiesRef.key!
    let storyRef = storiesStoryItemsRef.child(storyID)
    let storyItemsRef = ref.child("storyItems")
    var storyItemUID = ""
    storyItemsRef.observe(.childAdded, with: { (snapshot) in
            storyItemUID = snapshot.key
            let values = ["storyItemUID" : storyItemUID] as [String : Any]
        storyRef.updateChildValues(values, withCompletionBlock: { (err4, ref) in
            if err4 != nil {
                print(err4!)
                return
            }
        })
    }, withCancel: nil)

Буду благодарен за любые предложения о том, как правильно это реализовать. Я уже пытался использовать setValue вместо updateChildValues. Я также пытался перебрать snapshot.children безуспешно. Как я могу получить все идентификаторы storyItem в StoriesStoryItems? Заранее спасибо за ваши мысли.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...