代码之家  ›  专栏  ›  技术社区  ›  kvv

如何在Firebase中保存复杂对象?

  •  0
  • kvv  · 技术社区  · 6 年前

    我有两门课。班级 使用者 项目 . 我想保存的对象 使用者

    class User: NSObject {
        var name: String
        var items: [Item]
        init(dictionary: [String: Any]) {
            self.name = dictionary["name"] as? String ?? ""
        }
    }
    
    class Item{
        var name: String
        init(name: String) {
            self.name = name
        }
    }
    
    var user = User(dictionary: [:])
    user.name = "Tom"
    
    var item = Item(name: "item1")
    user.items.append(item)
    
    let uid = Auth.auth().currentUser?.uid
    Database.database().reference().child("users").child(uid).setValue(user)
    
    1 回复  |  直到 6 年前
        1
  •  1
  •   JIE WANG    6 年前

    将它们另存为firebase对象。

    class User: NSObject {
        var name: String
        var items: [Item]
        init(dictionary: [String: Any]) {
            self.name = dictionary["name"] as? String ?? ""
        }
        var json: [String: Any] {
            return ["name": name, "items": items.map { $0.json }]
        }
    }
    
    class Item{
        var name: String
        init(name: String) {
            self.name = name
        }
        var json: [String: Any] { 
            return ["name": name]
        }
    }
    
    Database.database().reference().child("users").child(uid).setValue(user.json)