如何快速在Firebase中的对象之间创建关系?

时间:2019-07-11 17:17:14

标签: swift firebase-realtime-database

我的快速应用程序中有三个对象。一个具有StoryItems(例如一个句子)的故事,而故事又具有Words。这些对象彼此相关,在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”。我也尝试遍历快照。孩子们没有成功。如何将所有storyItem ID放入storyStoryItems?预先感谢您的想法。

0 个答案:

没有答案